Суббота, 23 Ноября 2024, 14:15

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Простой ИИ для танка
Quad69Дата: Четверг, 02 Апреля 2015, 23:04 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Здравствуйте.
Делаю RTS игру, но тут у меня появилась проблема с танком, стрельба готова, поиск цели есть,
но вот не понимаю как сделать движение!
Мне надо сделать так что бы танк объезжал препятствия и ехал в координаты которые записаны в переменные xp и yp
Желательно что бы это было поиском пути, но если это трудно реализовать, то хотя бы обычным mp_potential_step.
Сама трудность в том, что мне надо что бы при повороте танк останавливался, разворачивался в сторону которую надо и ехал дальше.

Киньте мне примеры, или идеи как это реализовать.
EfimovMaxДата: Четверг, 02 Апреля 2015, 23:14 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Если через mp_potential_step, то как вариант, проверять угол спайта, если изменяется, то останавливаться, поворачиваться к точке, продолжать движение. Это если ты делаешь плавный поворот через image_angle. Другой вариант - сверять xprevious и yprevious с текущими позициями и уже оттуда плясать.

Не совсем понятно - у тебя танк двигается только в 4 направлениях?


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris
OrdanДата: Пятница, 03 Апреля 2015, 02:13 | Сообщение # 3
Главный зомби
Сейчас нет на сайте
А я думал в гамаке есть поиск пути для ии...

Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
Quad69Дата: Пятница, 03 Апреля 2015, 17:35 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Цитата EfimovMax ()
Не совсем понятно - у тебя танк двигается только в 4 направлениях?

Он может в любую сторону.
Я пробовал делать mp_potential_step и ставить скорость 0.00000000000001, потом меняется direction.
Дальше я приравниваю mdir(поворот самого танка) к direction и когда mdir=direction то приравниваю speed к 1 и танк должен ехать, но это у меня почему то не получается.
Цитата Ordan ()
А я думал в гамаке есть поиск пути для ии...

Правда? Я даже не знал!
Мне надо что бы при повороте, танк останавливался и плавно поворачивался и когда повернулся, продолжал ехать.
EfimovMaxДата: Пятница, 03 Апреля 2015, 19:18 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Цитата maksim1221232 ()
Дальше я приравниваю mdir(поворот самого танка) к direction и когда mdir=direction то приравниваю speed к 1 и танк должен ехать, но это у меня почему то не получается.

Так speed тут и ни при чём. После поворота заново вызывай mp_potential_step и будет тебе счастье smile


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris


Сообщение отредактировал EfimovMax - Пятница, 03 Апреля 2015, 19:31
Quad69Дата: Пятница, 03 Апреля 2015, 20:06 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Во! Получилось! Но танк теперь двигается как то странно. Заворачивает вправо, то влево...
Как это исправить?
EfimovMaxДата: Пятница, 03 Апреля 2015, 20:08 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Цитата maksim1221232 ()
Во! Получилось! Но танк теперь двигается как то странно. Заворачивает вправо, то влево...
Как это исправить?

Ну так ты хоть видео покажи что ли wink


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris
Quad69Дата: Пятница, 03 Апреля 2015, 20:15 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте

Вот примерно так он двигается. Движется вроде правильно, но по пути просто так поворачивается. То вправо, то влево.
EfimovMaxДата: Пятница, 03 Апреля 2015, 20:20 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
Скорее всего ты direction не присваиваешь значение, когда спрайт поворачивается. Пропиши его рядом с кодом изменения угла спрайта.

Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris


Сообщение отредактировал EfimovMax - Пятница, 03 Апреля 2015, 20:20
Quad69Дата: Пятница, 03 Апреля 2015, 21:16 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
direction должно вроде само присваиватся :\
Код
if distance_to_point(xp,yp)>4
{
r=0
var pt;
pt=path_add()
mp_grid_path(mcell,pt,x,y,xp,yp,true)
//mp_potential_settings(3,3,10,0)
r=floor(mdir-direction)
if r<0 {r=(360-(r+360))}
if r>3
  {
   mdir=scr_angle(mdir,direction,3)
   //mdir=point_direction(xprevious,yprevious,x,y)
   path_end()
  }
else
  {
   mdir=scr_angle(mdir,direction,3)
   direction=mdir
   path_start(pt,1,'',true)
   }
}

Вот код.
xp и yp это координаты в которые надо ехать танку.
scr_angle это плавный поворот.
mdir угол поворота танка.

Добавлено (03 апреля 2015, 21:16)
---------------------------------------------
Никто не знает решение проблемы?

mad_bakoДата: Вторник, 07 Апреля 2015, 11:26 | Сообщение # 11
был не раз
Сейчас нет на сайте
Я использую такую систему
Step Event:
Код
if place_free (x+1, y){
if place_free(x-1, y){
if place_free(x, y-1){
if place_free(x, y+1){
if distance_to_object(object2) < 100
{
direction = point_direction(x,y, object2.x, object2.y)
speed = 4;
}}}}}

гоняется за object2 если дистанция меньше 100 пикселей.
  • Страница 1 из 1
  • 1
Поиск:

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