PDA

Просмотр полной версии : AI в ActionScript 2.0


Devilox
10.01.2011, 23:15
Я облазил весь интернет, но ничего подходящего не нашёл. Допустим, что у меня есть игрок, стена и враг. Какой код мне нужен для того, чтобы враг проверял, что и как перед ним располагается(игрок, затем стена, или же стена, а затем игрок) и, исходя из этого, например, двигался в сторону игрока или просто стоял на месте, как бы не видя его?

NikolyA
10.01.2011, 23:23
http://xitri.com/page/2 - игрок и стена

Devilox
10.01.2011, 23:57
Извините, вы меня не так поняли, мне нужны враг и его поле обзора :)

dark256
11.01.2011, 01:10
Графически изобразите пожелание. Непонятно, что вам надо - путь обхода или camView :)
В целом - про пути вот тут много чего уже написано:
http://www.flasher.ru/forum/showthread.php?t=148614

Про именно поле обзора - это 3Д движки:
http://www.flasher.ru/forum/showthread.php?t=146066

NikolyA
11.01.2011, 07:08
dark256 а я его опять отправлю на http://xitri.com/2009/03/19/crimsonland3_survival_with_actionscript.html там если он внимательно посмотрит все, есть враги и уничтожение врагов или я ничего тогда не понимаю

Devilox
11.01.2011, 16:27
Здесь: красный - игрок, синий - враг, зелёный - стена и оранжевый - поле обзора врага.
Написан код, заставляющий врага всегда смотреть в сторону игрока, если тот один раз коснётся поля обзора.
Мне нужно, чтобы в случае, когда между врагом игроком стоит стена, враг не выполнял это действие.:)

goodguy
11.01.2011, 18:24
А причем тут АС2? Принципы работы AI общие для всех, хоть для АС, хоть для джавы или с++.
Достаточно ввести в поиск Artificial Intellegence или Исскуственный Интеллект в играх и можно будет посмотреть кучу примеров.
По поводу поля обзора, я уже как-то писал код в котором враг использовал поле обзора на подобие этого. Сразу могу сказать, что у него куча недостатков.
1) Это будет работать довольно медленно если врагов много, так как метод hitTest сам по себе довольно медленный
2) при вращении такого поля (в виде спрайта или муви клипа) на столкновение будет проверяться bounding box а не конкретно видимое поле обзора. Никакой точности не будет

Вместо поля зрения, лучше проверять расстояние до игрока

По поводу поиска пути, советую почитать об алгоритме A* (эй стар) его реализация уже написана, наверное, на всех языках, на которых это было вообще возможно сделать.