您好,

我正在尝试创建我的第一个简单的RPG游戏,但我遇到了一个问题:角色在走路时会在墙壁上抖动。

以下是我的步骤事件代码:

right_key = keyboard_check(vk_right);
left_key = keyboard_check(vk_left);
up_key = keyboard_check(vk_up);
down_key = keyboard_check(vk_down);

xspd = (right_key - left_key) * move_spd; 
yspd = (down_key - up_key) * move_spd;

if place_meeting( x + xspd, y, obj_wall ) == true 
{ 
    xspd = 0; 
} 
if place_meeting( x, y + yspd, obj_wall ) == true 
{ 
    yspd = 0; 
} 

x += xspd; 
y += yspd;

if ( xspd !=0 or yspd !=0 ) 
{  
    if (yspd > 0){ sprite_index = spr_player_down;
    } 
    else if (yspd < 0){ sprite_index = spr_player_up; 
    } 
    else if (xspd <0){ sprite_index = spr_player_left; 
    } 
    else { sprite_index = spr_player_right; 
    } 
} 
else{ sprite_index = spr_player_idle; 
} 

我会很感谢您的帮助!