Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

GBX.ru _ PSP: Программирование _ Программизмы-2

Автор: n-gamerqd Вторник, 02 июня 2009, 00:06

Вопрос прост. У нас есть координаты тела, его ширина и длина. Тело - прямоугольник. Есть простенький алгоритм, обсчитывающий столкновения, умеет возвращать направление столкновения (каким боком или углом уперлись). Реализован еще более простенький механизм обхода препятствий - на резуьтат работы k=collisionCheck() (функция проверки столкновений, далее - сС), отличный от нуля вызывается avoidObstacle(k) (обход препятствий,далее - aO), в которую оное k передается. аО, в свою очередь, в зависимости от цифры выбирает по правилу правой руки следующий шаг, выполняет его и забускает сС, если же обнаруживается невозможность шага, то он отменяется и вр екурсионном порядке вызывается aO (еще раз). Проблема алгоритма - в отсутствии обработки множественных столкновений и определенной глючности.

Естьу кого идеи? Может, ссылки на полезные статьи?Только, желателно, без математически извращенных решений типа графовых алгоритмов поиска путей или перехода на кинематическую модель движения в игре. Это будет совсем неуместно, ибо данный блок АИ пишется для зомби, и необходимости в сложных действиях нет и не предвидится.

Автор: quasist Вторник, 02 июня 2009, 05:18

Сделай лучше независимые движения по осям. И очень рекомендую кинематическую модель, так как когда зомбей много они будут толкаться между собой smile.gif

Автор: n-gamerqd Среда, 03 июня 2009, 00:30

Независимое по осям - т.е. тело двигается по вектору, полученному суммой двух, лежащих на осях x и y? Тогда так и сделал уже. А вот кинематика мне и самому импонирует, но переносить весь проект на нее - убиться можно.