GMS2 中的延迟时间

Delay time in GMS2

我正在努力使它在您单击时显示不同的 cursor_sprite 0.25 秒。我目前需要一些方法来为此添加延迟。到目前为止,这是我的代码:

在创建事件中:

/// @description Set cursor
cursor_sprite = spr_cursor;

步进事件:

/// @description If click change cursor

if mouse_check_button_pressed(mb_left)
{
    cursor_sprite = spr_cursor2;
    // I want to add the delay here.
}

您可以为此使用内置 Alarms,但当它与父对象嵌套时,我不太喜欢这些。

因此,我将采用以下方式代替警报:

创建活动:

cursor_sprite = spr_cursor;
timer = 0;
timermax = 0.25;

我创建了 2 个变量:timer 将用于倒计时,timermax 用于重置时间。

步骤事件:

if (timer > 0)
{
    timer -= 1/room_speed //decrease in seconds
}
else
{
    cursor_sprite = spr_cursor;
}

if mouse_check_button_pressed(mb_left)
{
    cursor_sprite = spr_cursor2;
    timer = timermax;
}

对于每个计时器,我通过1/room_speed让它在Step Event中倒计时,这样它会以实时秒数减少值。

然后可以通过timer = timermax

设置定时器

然后如果计时器达到零,它会在之后执行给定的操作。

虽然提醒它在步骤事件中,所以一旦计时器归零,如果之前没有其他条件,它总是会到达 else 语句。通常我使用 else 语句来改变条件,所以它不会多次到达定时器代码。