Четверг, 28 Марта 2024, 23:25

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Движение по пути
Движение по пути
KrososДата: Суббота, 13 Июля 2013, 11:35 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Столкнулся с такой проблемой , которая уже задолбала:
Код
if mp_grid_path(global.Moving_mpgrid,path_combat,x+0,y+0,instance_nearest(x,y,AA).x,instance_nearest(x,y,AA).y,false)= true and path_get_number(path_attack)<=global.SP[O]
     {   path_start(path_combat,10,0,1)       
         endpath=1
         global.Moving=1}

Персонаж создает путь и движется по нему , но он движется не по прямым линиям, а на поворотах плавно заворачивает.
Как исправить это?(Сделать движение по прямым линям)





Мой проект
MasterSamboДата: Суббота, 13 Июля 2013, 13:43 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Я со скриптами не очень дружу. Может просто функциями и событиями сделать?
KrososДата: Суббота, 13 Июля 2013, 17:20 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Верхнее условие изменять нельзя.
Сначала проверяется наличие пути к ближайшим координатам объекта АА ,а потом его дальность ,и если она меньше числа СП , то начать путь.





Мой проект
USeR14Дата: Суббота, 13 Июля 2013, 18:32 | Сообщение # 4
RUSOriginal Studio
Сейчас нет на сайте
Кажется понял в чем дело. У тебя, видимо, размерность глобальной сетки больше, чем персонажи (объекты).
Т.е. если у тебя mp_grid_create 64x64px, в персонажи 32x32px, то путь будет немного "заезжать" в стороны.
Я просто попробовал воспроизвести этот косяк.




KrososДата: Суббота, 13 Июля 2013, 21:25 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Не , это тоже не вариант...
Я заметил , что всем моим путям вообще пофиг какие там значения у сетки.O_o

Добавлено (13.07.2013, 21:13)
---------------------------------------------
Вот этот код идет отлично!

Код
if global.Phase2=1 and global.EnemyTurn=0 and global.Unit[O]=1 and global.currenttile.show= true and distance_to_object(global.currenttile)>0
{
     if mp_grid_path(global.Moving_mpgrid,path_combat,x+0,y+0,global.currenttile.x,global.currenttile.y,false)= true
      
      
     {
         path_start(path_combat,10,0,false)       
         endpath=1
         global.Moving=1}

Хотя разницы в них особой и нету...

Добавлено (13.07.2013, 21:16)
---------------------------------------------
Точно , нашел проблему...
and path_get_number(path_combat)<=global.SP[O]
Вот из-за этого патч и загибается , но блин ,выбросить эту часть тоже нельзя...(Безысходность)

Добавлено (13.07.2013, 21:25)
---------------------------------------------
Ладно , тогда пуская так и будет , игровой процесс это вроде особо не портит.





Мой проект
USeR14Дата: Суббота, 13 Июля 2013, 23:59 | Сообщение # 6
RUSOriginal Studio
Сейчас нет на сайте
Цитата (Krosos)
Точно , нашел проблему... and path_get_number(path_combat)<=global.SP[O] Вот из-за этого патч и загибается , но блин ,выбросить эту часть тоже нельзя...(Безысходность)

blink Кажется ты что-то намудрил с кодом...
path_get_number вряд ли может как-то повлиять на движение. И изменение размерности сетки должно все же нести какие-то изменения в передвижениях юнитов.




KrososДата: Воскресенье, 14 Июля 2013, 01:34 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Да , способ обхода препятствий немного меняется вроде.
path_get_number - все дело в нем ,это уж точно... global.SP[O] всегда равен целым числам-он является количеством возможных шагов, то есть точек в пути.
Код проверяет возможность пути и чтобы было достаточно шагов , чтобы его пройти.





Мой проект
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Движение по пути
  • Страница 1 из 1
  • 1
Поиск:

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