Мы пытаемся сделать игру марио. Однако используемый персонаж поднимается и поднимается, если мы удерживаем клавишу вверх. В отличие от игры марио, в которой он возвращается после определенной высоты. Мы только начали изучать Gml. Пожалуйста, помогите нам с этим. Мы загрузили скрипт, который мы сделали для прыжков и перемещения. Переменные hsp и vsp предназначены для горизонтальной и вертикальной скорости соответственно. grav — для настройки гравитации.
{
var hsp;
var vsp;
var grav;
var grounded;
hsp = 0;
vsp = 0;
grav = 5;
grounded = 0;
key_right = keyboard_check_direct(vk_right);
key_left = keyboard_check_direct(vk_left);
key_up = keyboard_check_direct(vk_up);
if(key_right)
{
if(hsp < 3)
{
hsp += 5;
}
}
if(key_left)
{
if(hsp > -3)
{
hsp -= 5;
}
}
if(key_up)
{
vsp = -20;
}
vsp += grav;
if(place_meeting(x + hsp, y, obj_wall))
{
while(!place_meeting(x + sign(hsp), y, obj_wall))
{
x += sign(hsp);
}
hsp = 0;
}
x += hsp;
if(place_meeting(x, y + vsp, obj_wall))
{
while(!place_meeting(x, y + sign(vsp), obj_wall))
{
y += sign(vsp);
}
if(sign(vsp) == 1)
{
grounded = 1;
}
vsp = 0;
}
else
grounded = 0;
y += vsp;
}