Показать сообщение отдельно
Старый 11.01.2010, 06:43   #2
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Тайлы, коллизия между ними и другое...

Здарова.

Сделай класс прямоугольника, в котором будут его координаты и ширина, и пара методов типа setPos(x,y), setSize(w,h) и методы для определения пересечения с другими прямоугольниками (или кружкАми).

Потом персонажам и объектам добавь поле "габарит", которое будет типом прямоугольника, подгони его размеры по размерам спрайтов.
В методе обновления персонажей и объектов пропиши boundRect.setPos(позицияОбъектаПоХ, позицияОбъектаПоУ), чтобы габариты связать с игроком, ну а после делай проверку пересечения этих прямоугольников.

Помимо габаритного прямоугольника можно сделать прямоугольник основания для персонажей, там где у них ноги, и делая проверку на его пересечение можно обрабатывать взятие бонусов, а также подход к дверям и их открытие.

Про двери: можно сделать по типу триггеров, роль которых возьмут на себя расставленные в редакторе прямоугольники - рядом с дверьми. А потом ты проверяешь пересечение этих прямоугольников с прямоугольным основанием игрока, и если пересеклись, то можно что-то делать с дверью, например открыть её ключом.

А если дверь не тайловая, а как объект, то триггерный прямоугольник сделать полем класса двери, и аналогично проверять.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Manfred (11.01.2010)