您应该在创建事件中定义
meele_cooldown = 60
(近战?),而不是在函数本身内部。因为正如你提到的,如果你重复按“Q”,它会被重新定义。
当
meele_cooldown
达到 0 后,您应该将其设置回 60。
编辑:通过评论中添加的上下文,我进一步扩展了我的答案:
您应该将倒计时条件
if (attack_cooldown >= 1)
放在Keyboard_Check_pressed()之外,因为无论您是否按下,您都希望它冷却。您还应该改善您的状况,以确保倒计时完成后其值为 0。由于变量是小数。
所以最终结果可能是这样的:
if (attack_cooldown >= 0)
{
attack_cooldown -=1;
}
else
{
attack_cooldown = 0;
}
if (keyboard_check_pressed() ... && attack_cooldown == 0)
{
attack_cooldown = 60;
//rest of the code
}
作为旁注:我确实注意到你现在正在使用一个序列,我自己对此并不熟悉,但我假设你希望在冷却期间播放它。我认为如果它在它自己的步骤事件中而不是在其他对象的事件中更适合。