|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.06.2011, 17:38 | #1 |
Пользователь
Регистрация: 09.06.2010
Сообщений: 35
|
Pacman. Препятствия.
Делаю Пакмена. Возникли проблемы с реализацией препятствия. Весь день лазаю по форуму, пробую разные решения, но не получается. Пожалуйста объясните по подробней, как с моим кодом сделать препятствия. Код во вложении.
PS: Я не хочу пользоваться своими классами.
Совсем неважно как ты ударишь, важно как держишь удар....
Последний раз редактировалось Dmitry96; 17.06.2011 в 17:42. |
19.06.2011, 20:48 | #2 |
Пользователь
Регистрация: 08.04.2010
Сообщений: 19
|
Ну это просто в данном случае. У тебя карта хранится и прорисовывается в виде двумерного массива. Пусть тогда "Пакмен" ходит "по клеткам", т.е. он не сможет пройти между двумя клетками и т.п. Как реализовать? Вот вариант:
1.) позиция Пакмена отмечается в массиве числом (например, 255); 2.) если игрок нажал кнопку (влево или вправо), ставим флаг поворота в нужную сторону; 3.) когда Пакмен доходит до очередной клетки карты (т.е. стоит точно в этой клетке), проверяется флаг, и если он есть, Пакмен проверяет, возможен ли поворот (т.е. если нажата кнопка влево - смотрим, если слева клетка с индексом 1 - стена, свернуть нельзя, идём дальше вперёд, если 0 - сворачиваем) и если да, поворачивает; 4.) если пользователь нажимает другую кнопку до того момента, когда Пакмен дошёл до следующей клетки, меняем флаг на другой; 5.) если дошли до следующей клетки, но клетка за ней имеет индекс 1 (стена) - останавливаем движение; 6.) если нажата кнопка "назад", меняем движение на обратное. Вместо (1) можно запоминать в переменной типа TPoint координаты Пакмена в данный момент - как тебе больше понравится. Монстров можно так же отмечать и также двигать, только вместо кнопок будет функция random(3). Надеюсь, всё пояснил на этот счёт. P.S. Классов, как видишь, нет. Не понимаю, что ты их так не любишь... |
19.06.2011, 21:14 | #3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Блин )) только с бендером всё рассусолили , ан на тебе ) появилась новая тема аналогичная.
Сейчас закину в неё последний вариант, смотри туда, как организовано перемещение по клеткам и препятствия (код я доводил до работоспособности, после бендера, но сам так не писал бы ))), хотя всё в целом так, как описывает DenTiSt http://programmersforum.ru/showthrea...=153883&page=4 тема Классы это вещь, жалко , что ты не хочешь с ними связываться (как я понял) |
19.06.2011, 23:26 | #4 | |
Пользователь
Регистрация: 09.06.2010
Сообщений: 35
|
Цитата:
по этому хочу организовать все без классов ради интереса. Потом конечно же буду их использовать. За примеры спасибо, завтра буду разбираться. Если что то будет не понятно, то спрошу.
Совсем неважно как ты ударишь, важно как держишь удар....
|
|
20.06.2011, 21:58 | #5 |
Пользователь
Регистрация: 09.06.2010
Сообщений: 35
|
Что то не получается у меня...
Я решил сделать, как посоветовал DenTiSt. Но не получилось. Работает очень глючно. Вот код:
Код:
xPos : Координаты по X yPos : Координаты по Y KLsize : Размер клетки. Если где то ошибся, покажите пожалуйста. Вот полный код:
Совсем неважно как ты ударишь, важно как держишь удар....
Последний раз редактировалось Dmitry96; 20.06.2011 в 22:01. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация препятствия | [BeNdeR] | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 36 | 19.06.2011 21:14 |
Pacman | Merkator | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 13 | 12.02.2011 13:58 |
Pacman | Roll1n | C++ Builder | 1 | 28.05.2010 20:57 |
Препятствия! | anton14 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 01.02.2009 12:50 |
Препятствия в игре. | Манжосов Денис :) | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 07.06.2008 14:14 |