gravity = 0.3;
jump_speed = -10;
// Определяем, стоит ли объект на земле
if (place_meeting(x, y + 1, obj_ground)) {
grounded = true;
} else {
grounded = false;
}
// Прыжок при нажатии пробела, если объект на земле
if (keyboard_check_pressed(vk_space) && grounded) {
vspeed = jump_speed;
}
// Если объект не на земле – всегда прибавляем гравитацию
if (!grounded) {
vspeed += gravity;
} else {
// Если объект на земле и при этом двигается вниз – обнуляем вертикальную скорость
if (vspeed > 0) {
vspeed = 0;
}
}
// Изменяем позицию по вертикали
y += vspeed;
gravity = 0.3;
jump_speed = -10;
vspeed = 0;
grounded = false;
if (place_meeting(x, y + 1, obj_ground)) {
grounded = true;
} else {
grounded = false;
}
if (keyboard_check_pressed(vk_space) && grounded) {
vspeed = jump_speed;
}
if (!grounded) {
if (vspeed < 0) {
} else {
vspeed += gravity;
}
}
y += vspeed;
if (grounded && vspeed > 0) {
vspeed = 0;
}