0

如何确保在玩家移动并播放动作动画后,机架(空闲)的动画开始,这应该在两个方向(右,左)都有效

4

2 回答 2

0

我找到了解决方案,必须使用keyboard_check_released

var right_move = (keyboard_check(ord("D")));
var left_move = (keyboard_check(ord("A")));
var right_move_release = (keyboard_check_released(ord("D")));
var left_move_release = (keyboard_check_released(ord("A")));


if (right_move) {
    phy_position_x += 10;
    sprite_index = Move_right;
    image_speed = 1;
}

if (right_move_release) {
    sprite_index = Idle_right;
}


if (left_move) {
    phy_position_x -= 10;
    sprite_index = Move_left;
    image_speed = 1;
}

if (left_move_release) {
    sprite_index = Idle_left;
}
于 2020-06-09T11:42:27.387 回答
0

我认为,或者,您也可以使用elseif 语句来代替,这样可以使代码更清晰:

var right_move = (keyboard_check(ord("D")));
var left_move = (keyboard_check(ord("A")));

if (right_move) {
    phy_position_x += 10;
    sprite_index = Move_right;
    image_speed = 1;
} else {
    sprite_index = Idle_right;
}


if (left_move) {
    phy_position_x -= 10;
    sprite_index = Move_left;
    image_speed = 1;
} else {
    sprite_index = Idle_left;
}

如果左侧精灵与右侧精灵相同,那么您还可以使用image_xscale并将缩放比例更改为1-1翻转精灵。

于 2020-06-09T13:54:47.610 回答