// 移动变量
var move_x = 0;
var move_y = 0;
// 检测按键事件
if (keyboard_check(ord("D")) == true or keyboard_check(vk_right)) {
move_x += 1.5;
image_speed = 0.5;
sprite_index = spr_player_1_right;
}
// 检测左键
if (keyboard_check(ord("A")) == true or keyboard_check(vk_left)) {
move_x -= 1.5;
image_speed = 0.5;
sprite_index = spr_player_1_left;
}
// 检测上键
if (keyboard_check(ord("W")) == true or keyboard_check(vk_up)) {
move_y -= 1.5;
image_speed = 0.5;
sprite_index = spr_player_1_back;
}
// 检测下键
if (keyboard_check(ord("S")) == true or keyboard_check(vk_down)) {
move_y += 1.5;
image_speed = 0.5;
sprite_index = spr_player_1
}
// 移动位置
x += move_x;
y += move_y;
// 检测碰撞事件
if (place_meeting(x + move_x, y + move_y, obj_unwalkable_object)) {
// 当碰撞时,设置移动速度减慢
move_speed = 1;
// 防止继续向前移动
move_x = 0;
} else {
// 当没有碰撞时,恢复移动速度
move_speed = 1.5;
}
请注意,move_and_collide函数在GameMaker Studio中已经被废弃,取而代之的是place_meeting函数。
评论 (0)