Помощь - Поиск - Пользователи - Календарь
Полная версия: Packman
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
ShpateL
Кто нибудь пробывал написать эту игру? Думаю да))) Сам вот захотел, только не знаю, с чего начать... К примеру, как сделать, чтобы монстры сами искали пакмана? У меня была идея разделить экран на квадраты, каждый квдрат - элемент массива, а дальше уже волновая трассировка... Или не так? Если кто писал эту игру, подскажите, плиз wink.gif
Бродяжник
Я делал так:
Поле разбил на клетки, Так оно хотя и грубее, но проще. Стены клеточные, проходы клеточные. При этом все проходы шириной в одну клетку.
От идеи дать монстрам способность постоянно преследовать Пакмена я отказался. Если так сделать, то они либо вскорости его загонят, либо увяжутся за ним гуськом. Поэтому схема была такая: монстр тупо бежит по корридору, пока либо не уткнется в стену, либо не добежит до развилки. Если он забежал в тупик/дошел до поворота/развилки, тогда он смотрит, какие есть возможные пути и рандомно выбирает любой из них. И опять бежит.
В принципе, к этому можно добавить еще такую проверку: если монстр видит Пакмена по прямой линии, тогда он бросается к нему. А если не видит, то продолжает бродить рандомно.
Можно, конечно, сделать и волновой алгоритм, но стоит ли? Разве что для уровня "Nightmare" smile.gif
Archon
Пакмэн - это культ... Помню лет 15 назад играл с помощью самодельного джойстика у отца на работе в версию, написанную одним его коллегой smile.gif
Насчёт AI: вы заметили, что в оригинальном пакмэне все монстры разного цвета? Так вот: они и ведут себя по разному. В этом была половина всего интереса. Какой монстр что делает я сейчас уже не помню, но например один из них всегда поворачивал влево...
Как сделать чтоб искали? Проверяй разницу координат монстра и пакмэна. Если x-координата пакмэна меньше, проверяем, может ли монстр двигаться влево (нет ли там стены). Если y-координата пакмэна больше, проверяем направление вниз.... ну и так далее. Но Бродяжник прав, сложно играть будет. Хотя, такого монстра можно сделать медленнее пакмэна.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.