Четверг, 09 Апреля 2020, 19:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Умный AI (Как реализовать?)
Умный AI
DESOLДата: Понедельник, 27 Сентября 2010, 19:26 | Сообщение # 1
участник
Сейчас нет на сайте
Всем привет! Сталкнулся с проблемой. Мне нужно сделать более ли менее умного AI. Чтобы когда ГГ подходит к AI на дистанцию 250, AI начинал за ним бегать и стрелять, но тоже не подходя вплотную к ГГ. И еще желательно сделать так чтобы AI не видел ГГ из за стены. Кто знает как реализовать просьба написать как, а не тупо выложить пример...

Как же трудно бороться с ленью...
ezhickovichДата: Понедельник, 27 Сентября 2010, 19:36 | Сообщение # 2
[Великий и могучий хозяинъ]
Сейчас нет на сайте
DESOL, пусть у AI есть несколько состояний допустим "простой, патруль, атака, смерть"
Вначале у AI состояние "простой"
Если расстояние до ГГ <= 250, то состояние меняется на "атака" и AI начинает преследовать ГГ...
Если ГГ смог оторваться состояние AI меняем на патруль и AI начинает патрулировать местность в определённом радиусе...
Если после ухода ГГ из поля видимости AI прошло достаточно времени, то AI его забывает и переходит в "простой"

Добавлено (27.09.2010, 19:36)
---------------------------------------------
Полагаю состояние "смерть" пояснять не надо?



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
DESOLДата: Понедельник, 27 Сентября 2010, 19:47 | Сообщение # 3
участник
Сейчас нет на сайте
ezhickovich, Ну теорию, я тоже знаю! А как это реализовать в коде?

Как же трудно бороться с ленью...
ezhickovichДата: Понедельник, 27 Сентября 2010, 20:02 | Сообщение # 4
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (DESOL)
А как это реализовать в коде?

Я C программист - не ГМЛщик...

Да и чё там такого реализовывать?
Расчёт расстояния?
Само поведение AI при соответствующем состоянии тоже реализовать не сложно...



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
GavolotДата: Понедельник, 27 Сентября 2010, 20:02 | Сообщение # 5
Последователь Тени
Сейчас нет на сайте
DESOL, раньше тоже парился с подобным:
Вот что я делал для своей RTS, ну это так кусок того что я делал, но ты пока спрашиваеш именно это.

Code
Set_to_Hunt
//Скрипт охоты за ближайшим противником
//argument0 -- это цель
//argument1 -- расстояние от цели
//argument2 -- скорость передвижения

     if instance_number(instance_nearest(x,y,argument0))>0{
if distance_to_object(instance_nearest(x,y,argument0))>=argument1     
         
{
mp_potential_step(instance_nearest(x,y,argument0).x,instance _nearest(x,y,argument0).y,argument2,false)
}
else
if distance_to_object(instance_nearest(x,y,argument0))<=argument1
and
collision_line(x,y,instance_nearest(x,y,argument0).x,instance_nearest(x ,y,argument0).y,Wall_2,0,0)
{
mp_potential_step(instance_nearest(x,y,argument0).x,instance_nearest(x,y,argument0).y,argument2,false)
}
}    

вот такой скрипт я создал. Тут-же и набераеш если расстояние больше такого-то то мы двигаемся, если расстояние сложилось стоим и стреляем (то что он будет типо моневрировать или что-то еще, это другая история. Если будет нужно постараюсь помоч.
Кстати так-же в конце там имеется вещь, что если ты за обьктом Wall_2 то он уже будет идти на тебя вплотную конечно, ну вдруг ты решил спрятаться в кладовой или еще типо того, а он тебя не видет, но уже давно преследовал.
Вызывал скрипт следующим образом:

Code

//Набор команд для юнита ИИ
if comand = 1
{
Set_to_Hunt(PL_Target,distance,2)
}

Весь свой код беру из моего Star_Gate, PL_Target это метка за кем бежит бот, дистанция думаю ты понял, переменная с определенным числом, цифра 2 скорость движения.


В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.


Сообщение отредактировал Gavolot - Понедельник, 27 Сентября 2010, 20:09
ezhickovichДата: Понедельник, 27 Сентября 2010, 20:04 | Сообщение # 6
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Поиск пути?
Тоже ничего сложного...
В гугле куча статей по сабжу... ( поиск пути )



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
GavolotДата: Понедельник, 27 Сентября 2010, 20:06 | Сообщение # 7
Последователь Тени
Сейчас нет на сайте
Ну так зачем надо что-то сложное, для более менее.

В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.
DESOLДата: Понедельник, 27 Сентября 2010, 20:17 | Сообщение # 8
участник
Сейчас нет на сайте
Так спасибо всем, вроде разобрался... А еще вопросик. Как сделать через скрипт чтобы AI обходил стены?

Как же трудно бороться с ленью...
GavolotДата: Понедельник, 27 Сентября 2010, 20:29 | Сообщение # 9
Последователь Тени
Сейчас нет на сайте
DESOL, он и будет вроде обходить стену если я неошибаюсь, mp_potential_step оно и есть, простой, но вроде эффективный. + поставь если помог cool

В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.
DESOLДата: Понедельник, 27 Сентября 2010, 20:56 | Сообщение # 10
участник
Сейчас нет на сайте
Gavolot, Я б с радостью + поставил, но мне пишет только через 7 дней! Через 7 дней обязательно поставлю, не забуду!

Как же трудно бороться с ленью...
GavolotДата: Понедельник, 27 Сентября 2010, 21:38 | Сообщение # 11
Последователь Тени
Сейчас нет на сайте
DESOL, так все хватит у меня было 10 стало 11))

Добавлено (27.09.2010, 21:38)
---------------------------------------------
+ в личке образовалось твоё сообщение, так-что все нормально.


В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.
DESOLДата: Понедельник, 27 Сентября 2010, 21:52 | Сообщение # 12
участник
Сейчас нет на сайте
Gavolot, Я рад что смог тебя отблагодарить!!!

Как же трудно бороться с ленью...
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Умный AI (Как реализовать?)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2020 Рейтинг