Зависит от габаритов стены и метода определения столкновений. Если через place_meeting в step'е, то что-то типо этого:
Код
if(place_meeting(x+sprite_get_width(sprite_wall)*sign(hspeed),y,obj_wall)) hspeed=-hspeed;
if((place_meeting(x,y-sprite_get_height(sprite_wall),obj_wall))//или тоже *на sign, зависит от целей
{
hspeed = 0;
y = yprevious;
}
Если столкновение через Events:
Код
if(collision_line(x,y,x+hspeed,y,obj_wall,0,1)) hspeed = -hspeed;
if(collision_line(x,y,x,y+vspeed,obj_wall,0,1))//либо -abs(vspeed), если только столкновение сверху
{
vspeed = 0;
y = yprevious;
}
Пишу с телефона, синтаксические ошибки возможны.
С Наступающим Новым годом!))