Суббота, 21 Декабря 2024, 14:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
AI для танков
TJSДата: Суббота, 24 Ноября 2012, 03:07 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Помогите сделать АI для танков. Я начинал работать с этого примера, но никак не дойдет, как сделать нормальный AI, что бы вражеский танк прочесывал местность в поисках игрока, двигался так же как и игрок (у меня получилось сделать только банальное преследование)
Code

Dir=point_direction(x,y,main_tank.x,main_tank.y)
if(distance_to_object(main_tank)<150)
if(!collision_line(x,y,main_tank.x,main_tank.y,tree01,1,1))and(alarm[0]<0)and(point_distance(x,y,main_tank.x,main_tank.y)<300 )
if(!collision_line(x,y,main_tank.x,main_tank.y,tree02,1,1))and(alarm[0]<0)and(point_distance(x,y,main_tank.x,main_tank.y)<300 )
{
alarm[0]=20
}

if(distance_to_object(main_tank)<150)
{
move_towards_point(main_tank.x, main_tank.y, 4)
}
if(distance_to_object(main_tank)<50)
{
move_towards_point(main_tank.x, main_tank.y, 0)
}
  image_angle=direction

Добавлено (24.11.2012, 03:07)
---------------------------------------------
Если я не ошибаюсь, что бы сделать "прочесывание местности" нужно дать боту команду двигаться в рандомном направлении, если упрется в препятствие - двигаться в противоположном, пока не встретит игрока.


Если тебе трудно грызть гранит науки - попробуй пососать...........
AGENTX001Дата: Суббота, 24 Ноября 2012, 22:44 | Сообщение # 2
почётный гцупер
Сейчас нет на сайте
Quote (TJS)
Если я не ошибаюсь, что бы сделать "прочесывание местности" нужно дать боту команду двигаться в рандомном направлении, если упрется в препятствие - двигаться в противоположном, пока не встретит игрока.


В принципе так, но нужно задавать некий ограничитель для танка, например 200px от стартовой позиции, что-бы боты не разбегались по всей карте.
TJSДата: Воскресенье, 25 Ноября 2012, 01:00 | Сообщение # 3
почетный гость
Сейчас нет на сайте
можно код уточнить?
Code
motion_set(random(360),2)

alarm
Code
direction+=choose(90,-90)
alarm[0]=random[10]

step
Code
motion_set(direction,2)
if(distance_to_object(start_position)<200)

и еще, как заставить бота объезжать препятствия?
что то вроде этого:
Code
if(distance_to_object(tree001)<10)
?рандомное движение?


Если тебе трудно грызть гранит науки - попробуй пососать...........

Сообщение отредактировал TJS - Воскресенье, 25 Ноября 2012, 01:29
  • Страница 1 из 1
  • 1
Поиск:

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