|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.07.2010, 10:04 | #481 |
Горю
Пользователь
Регистрация: 09.12.2009
Сообщений: 10
|
Здравствуйте 49 страниц не осилил!
У меня карта собирается из текстур 32х32 герой 64х32 ну и деревья и прочие здания разных размеров. Мне интересно как правильно отрисовывать героя и за деревьями и перед... Я не могу передвинуть героя на основания дерева (ствол) но под крону что находиться в ячейки выше могу и тут нужно что бы герой был под кроной дерева и на оборот если герой стоит на 1 ячейку ниже основания дерева(ствола) то мне нужно рисовать героя не переднем плане а дерево на заднем. Вопрос в следующем как это правильно делать? Я кончено могу рисовать героя в цикле отрисовки карты и смотреть в какой он ячейки и что вокруг него если он выше дерева то его первым рисовать дерево вторым и на оборот. На сколько это правильно? |
14.07.2010, 11:04 | #482 |
PHP, Delphi
Форумчанин
Регистрация: 07.05.2008
Сообщений: 388
|
Вот, столкнулся с проблемой ИИ в игре РПГ. Подскажите (может у кого и пример кода есть), как сделать врагов более умными, то есть чтобы не видели ГГ сквозь стены, кидались на ГГ, если у них полно здоровья и убегали, если мало и т.п.
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты |
14.07.2010, 12:55 | #483 | ||
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
Цитата:
__________________ |
||
14.07.2010, 16:13 | #484 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
BASSON_XVI, если правильно организовано построение скелета карты и распределение в нем объектов, то все работает автоматически.
Дерево растет с корня, поэтому картинка смещается вверх на высоту текстуры минус пол клетки карты. Аналогично смещается персонаж. Как только персонаж находится по-Y выше дерева, хоть на 1 клетку, он будет позади него, ...почему? ...цикл обработает сначала персонажа, у него Y меньше, а следом дерево. Строения смещаются в зависимости от основания. Если они занимают 1 клетку, то как в случае с деревом, если 3х3 клетки, то в центре будет смещение, все клетки основания здания должны быть непроходимыми, тогда персонаж пройдет вокруг и его появление снаружи и за зданиями будет по всем правилам. Крупные здания нужно разбивать на части, работать как с пристройками. apromix, в каждом такте обработки моба запускается процедура. В ней куча условий. Самое первое - цикл обзора, т.е. моб сканирует вокруг себя карту на определенный радиус. Условие: если на карте обнаружился объект, проверить количество жизни. Если количество жизни больше чем у моба, то с вероятностью 80% выбрать произвольно точку отступления. Если жизни меньше или равно, то с вероятностью 90% взять координаты цели, отправить в процедуру перемещения, ...моб будет топать до цели. Он все время, каждый такт, будет выполнять все описанное ранее, и будет реагировать на перемещение цели, ...всегда будет идти к ней, как бы она не убегала. Цель может потеряться, если она уйдет каким-то образом за радиус обзора, тогда моб остановится и удалит у себя цель. Последняя проверка на дистанцию атаки. Если дистанция для нападения достаточная, то остановиться и перейти в режим атаки. Если по какой-то случайности или закономерности жизней у моба станет меньше чем у цели, он свалит. Или можно создать очередное условие на проверку режима. Если моб в режиме атаки, то не выполнять некоторые пункты выше, например, проверку на количество жизней, чтобы моб бился до конца. Тут же могут быть условия как пользоваться восстановлением жизни, лечиться или нет, когда и что делать, какими средствами.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
19.07.2010, 20:13 | #485 |
Горю
Пользователь
Регистрация: 09.12.2009
Сообщений: 10
|
Не рандомистый рандом!
Довольна странная функция random(); она постоянно выбирает одни и те же цифры, то есть от запуска к запуску пробной демки моб ходит одинаково и постоянно уходит куда то вниз выделенного ему квадрата для ходьбы!
Выбор направления 0-3 то есть random(3); И насколько я вижу чаще всего выпадает именно 0. Как с этим бороться? Ниже кусок кода ходьбы мобов: Код:
|
19.07.2010, 20:40 | #486 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Не помню точно, как в паскале, но по идее нужно сначала вызывать функцию randomize, чтобы ряды случайных значений каждый раз были разными.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
19.07.2010, 21:03 | #487 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Все верно. Перед кодом выбора и обработки нужна команда взятия нового ряда Randomize.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
19.07.2010, 21:27 | #488 |
Форумчанин
Регистрация: 02.07.2010
Сообщений: 167
|
люди кто-нибудь можете пожалуйста создать текстовый файл, содержащий страницы данной темы а | то у меня инет тормознутый (оооооооооочень) за 3 день только 10 страниц прочитал (сидел где - то по часу в день)
Если я тебе помог, помоги и ты мне +ом с комментарием
Последний раз редактировалось Beermonza; 20.07.2010 в 16:15. |
19.07.2010, 21:36 | #489 |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Сделано, залито... Если совсем фигово с нетом, то правой кнопкой мыши и "Сохранить объект как"...
I am the First of Cyber Evolution...
I am the First to Program your Future... Последний раз редактировалось DomiNick; 19.07.2010 в 23:35. Причина: Done! |
19.07.2010, 21:46 | #490 |
Горю
Пользователь
Регистрация: 09.12.2009
Сообщений: 10
|
То есть перед каждым random(); вызывать randomize; ???
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |