gpt4 book ai didi

c++ - C++中的按键事件

转载 作者:行者123 更新时间:2023-11-30 03:07:54 28 4
gpt4 key购买 nike

我目前正在使用 GetAsyncKeyState() 来检测 Keydown 事件,但是当您按住该键时,这些事件将重复出现。

阻止事件重复发生的简单方法是什么?


示例

如果我按住键盘上的 i 键一会儿,我会得到这样的输出:

iiiiiiiiiiiiiiiiiiiiiiiii

取而代之的是:

i


我想强制用户再次按下该键以触发该事件。

最佳答案

避免使用 WM_KEYDOWN 或 WM_CHAR 等键盘相关消息来检测键,当用户按住它时,Windows 会重复 WM_KEYDOWN。您只需要一个自己的 bool 标志来跟踪 key 的状态。只有当您看到 GetAsyncKeyState() 报告的状态与此标志之间存在差异时,才更改您的游戏对象状态。大致:

bool movingLeft = false;
...
if ((GetAsyncKeyState(VK_LEFT) < 0) != movingLeft) {
movingLeft = !movingLeft;
gameObject->setVelocity(movingLeft ? -10 : 0);
}

关于c++ - C++中的按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523111/

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