Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Алгоритм созжания карты [Delphi, Windows]


S.W.I.N.E. ©   (2004-04-26 19:14:00) 

Пытаюсь с помощью DelphiX создать маленькую аркаду-платформер. Первая проблемма: как создавать карты? То есть, какой алгоритм необходим для того, чтобы проверять, стоит ли игрок перед препятствием, может ли он его перепрыгнуть и т.д.?


хм   (2004-05-08 18:22:00) [1]

>var map: array [0..64, 0..64] of Integer;
зачем ограничевать себя интегером? лучше записи использовать


Mihey   (2004-05-07 20:07:00) [2]

2 woolf/psycho:

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


woolf/psycho   (2004-05-07 13:49:00) [3]

Я как-то делал стрелялку-прыгалку вид с боку. И вот к чему я пришел: создавать массив структур, описывающих каждую ячейку карты неудобно, да и не выгодно. Я создал список всех объектов карты, и просто работал с этим списком. Так, вроде, эффективнее, поскольку объект карты может занимать любой размер, а не только кратный размеру ячеек...


Mihey   (2004-05-06 20:45:00) [4]

Буквально здесь человек изложил свои мысли грамотно и понятно:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1083832794&n=9


Thor   (2004-05-06 20:28:00) [5]

дпустим, для аркады с картой 64х64 это будет 4096 ячеек.
вот что-то типа того:
var map: array [0..64, 0..64] of Integer;
ну и соответственно при создании карты заполняешь его нужными тебе значениями.

mirgames.ru - пример про платформенную аркаду с Астериксом.


S.W.I.N.E.   (2004-05-06 20:07:00) [6]

Не, то, что это  массив я понял, но какой? Двумерный, трехмерный, записей... Что он из себя представляет?
2Thor: Если уже много раз было, то подкинь ссылку...


Thor   (2004-05-06 19:25:00) [7]

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


S.W.I.N.E.   (2004-05-06 19:18:00) [8]

Не, слишком сложно. Проще координаты запоминать. Создать какой-нибудь массив координат, да только как? Тут хитропопо как-то надо.


OSokin   (2004-04-26 19:23:00) [9]

Если используешь DelphiX, то там все просто - создаешь кучу спрайтов, соответствующи этим препятствиям, игроку и т. д. и проверяешь у игрока OnCollision (не забудь поставить проверку). Если это препятствие, то запрещаешь движение.


Наверх

Титульная страница Поиск, карта сайта Написать письмо