gpt4 book ai didi

c++ - 使键态触发仅触发一次

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:28 25 4
gpt4 key购买 nike

我正在编写一个菜单,并使用 keyState[SDL_SCANCODE_KEY] 来检测何时按如下循环中的键:

if (Button1 && keyState[SDL_SCANCODE_DOWN])
{
Button1 = false;
Button2 = true;
}
else if (Button2 && keyState[SDL_SCANCODE_DOWN])
{
Button2 = false;
Button3 = true;
}
else if (button3 && keyState[SDL_SCANCODE_DOWN])
{
//and so on
}

然而,此设置的问题在于,当用户按下向下键时,键状态会多次触发,从而使按钮 2 切换到按钮 3 的条件保持事件状态,依此类推。那么如何让键态只触发一次,或者至少解决这个问题呢?谢谢。

最佳答案

发生这种情况是因为您的系统 (CPU) 运行速度太快。为避免这种情况,您可以使用计时器或延迟。

要简单解决,可以使用delay。最后,试试

delay(1000); // which means delay 1000 clock cycles.

您可以通过修改数字(即 1000)来调整长度,但请注意,在复杂系统中使用延迟功能可能至关重要。在该系统中,可以使用Timer,但实现起来比这更复杂。

关于c++ - 使键态触发仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40582588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com