Здравствуйте! Сделал элементарный код для движения персонажа, но скорость у него складывается при движении по диагонали, не могу придумать как сделать так чтобы этого избежать. Вот код:
var x_input = keyboard_check(ord("D")) - keyboard_check(ord("A"));
var y_input = keyboard_check(ord("S")) - keyboard_check(ord("W"));
move_and_collide(x_input * global.spd, y_input * global.spd, Obj_collision);
Попробовал потом таким способом, из интырнета, но там почему-то спрайт персонажа дергается при диагональном движении....
var left = keyboard_check(ord("A"));
var right = keyboard_check(ord("D"));
var up = keyboard_check(ord("W"));
var down = keyboard_check(ord("S"));
// Скорость движения
// Создаем переменную скорости движения moveSp
var moveSp = (left or right or up or down) * global.spd;// Вместо 3 можно поставить свою скорость
// Направления по Горизонтали и Вертикали
var horizontalDir = (right - left);
var verticalDir = (down - up);
// Направление движения
// Создаем переменную dir для направления движения
var dir = point_direction(0,0,horizontalDir,verticalDir);
// Вычисление движения по осям X и Y
// Создаем переменные X и Y
var X = lengthdir_x(moveSp,dir);
var Y = lengthdir_y(moveSp,dir);
move_and_collide(X,Y,Obj_collision);