![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Алгоритм созжания карты [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 (не забудь поставить проверку). Если это препятствие, то запрещаешь движение.