Ответ: Тайлы, коллизия между ними и другое...
Здарова.
Сделай класс прямоугольника, в котором будут его координаты и ширина, и пара методов типа setPos(x,y), setSize(w,h) и методы для определения пересечения с другими прямоугольниками (или кружкАми).
Потом персонажам и объектам добавь поле "габарит", которое будет типом прямоугольника, подгони его размеры по размерам спрайтов.
В методе обновления персонажей и объектов пропиши boundRect.setPos(позицияОбъектаПоХ, позицияОбъектаПоУ), чтобы габариты связать с игроком, ну а после делай проверку пересечения этих прямоугольников.
Помимо габаритного прямоугольника можно сделать прямоугольник основания для персонажей, там где у них ноги, и делая проверку на его пересечение можно обрабатывать взятие бонусов, а также подход к дверям и их открытие.
Про двери: можно сделать по типу триггеров, роль которых возьмут на себя расставленные в редакторе прямоугольники - рядом с дверьми. А потом ты проверяешь пересечение этих прямоугольников с прямоугольным основанием игрока, и если пересеклись, то можно что-то делать с дверью, например открыть её ключом.
А если дверь не тайловая, а как объект, то триггерный прямоугольник сделать полем класса двери, и аналогично проверять.
|