我正在尝试按照教程创建一个2D游戏。使用提供的图像创建了一个栅格集,并且没有修改任何设置,只是添加了移动功能。玩家角色在其它层的左或右方向撞击地图块后会卡住,而不是上或下方向的撞击。是什么原因造成的呢?

我的代码:

创建
layer = layer_get_id("Tiles_Borders");

tilemap = layer_tilemap_get_id("Tiles_Borders");

步骤
var right = keyboard_check((ord("D"))) 或 keyboard_check(vk_right);

var left = keyboard_check((ord("A"))) 或 keyboard_check(vk_left);

var up = keyboard_check((ord("W"))) 或 keyboard_check(vk_up);

var down = keyboard_check((ord("S"))) 或 keyboard_check(vk_down);

var horizontal = right - left; // 类似于C的转换

var vertical = down - up;

if(right){

sprite_index = spr_player_walk_right;

}

if(left){

sprite_index = spr_player_walk_left;

}

if(down){

sprite_index = spr_player_walk_down;

}

if(up){

sprite_index = spr_player_walk_up;

}

if(horizontal == 0 && vertical == 0){

开关 (sprite_index) {

案例 spr_player_walk_left:

sprite_index = spr_player_idle_left;

break;

案例 spr_player_walk_right:

sprite_index = spr_player_idle_right;

break;

案例 spr_player_walk_up:

sprite_index = spr_player_idle_up;

break;

案例 spr_player_walk_down:

sprite_index = spr_player_idle_down;

break;

default:

break;

}

}

move_and_collide(horizontal * movement_speed, vertical * movement_speed, tilemap, undefined, undefined, undefined, movement_speed, movement_speed);