делаю платформер на gamemaker, и игра зависает намертво, когда персонаж трогает вертикальные поверхности. как исправить?
var xDirection = keyboard_check(ord("D")) - keyboard_check(ord("A")); var jump = keyboard_check_pressed(vk_space); var onTheGround = place_meeting(x, y + 1, oWall);
if (xDirection != 0) image_xscale = xDirection;
xSpeed = xDirection * spd; ySpeed += 0.5;
if (onTheGround) { if (xDirection != 0) { sprite_index = srobot_walk; } else { sprite_index = srobot_idle; }
Гениально впихнуть while (!place_meeting) для обработки столкновения со стеной. Что может пойти не так, если персонаж уже ВНУТРИ нее? Этот цикл просто обязан крутиться вечно, поздравляю с открытием бесконечности.
PS
Просветленный
(23231)
Саша Клышов, Объяснено же: цикл зависает, потому что объект УЖЕ ВНУТРИ. Значит, или не перемещать его в стену вовсе, или вытолкнуть сразу, а не ждать погоды у моря этим вайлом.