GM 8 Pro
Есть необходимость заставить объект двигаться по созданной траектории, в зависимости от расстояния до ключевого объекта. Например, ГГ (главный герой) огибает угол по ровной кривой, радиус которой зависит от расстояния между ГГ и точкой угла.
Делал так:
Е-key
Код
x2=skill.x; y2=skill.y;
x1=krur.x; y1=krur.y;
rad=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
ugol=degtorad(10);
count=0;
rep=19;
for (i=1;i<rep; i+=1)
{
yn=(rad*sin(ugol*i))+y1;
xn=(rad*cos(ugol*i))+x1;
if xn>x2 {instance_create(xn, yn, kapl); count+=1;}
}
for (i=0;i<count; i+=1)
{
near=instance_nearest(skill.x,skill.y,kapl)
if near.x>skill.x
{
if place_free(near.x+2,near.y)
{skill.x=near.x;
skill.y=near.y;
}
}
}
Создание траектории и движение ГГ (объекта skill) работает так, как мне нужно, НО!
При переносе в основной проект возникла проблема, ибо ГГ имеет гравитацию и вертикальную скорость. Решал эту проблему добавлением переменной skill.go=true; в вышеуказанный код.
А в Step ГГ добавлял проверку кнопками:
Код
if skill.go is equal to true
set the gravity to 0 in direction 0
set variable vspeed to 0
Получилось так - траектория создается нормально, при удерживании E-key ГГ зависает в воздухе (вроде как гравитация и вертикальна скорость отключены правильно), но не перемещается по траектории. Хотя видно, что в нужную сторону ГГ чуть-чуть смещается при каждом нажатии E-key.
Что делать?