【发布时间】:2020-12-11 05:59:07
【问题描述】:
我正在制作一个从 xbox 控制器读取输入的程序,并且我在代码中有一些需要切换的布尔变量。我的函数有这个模板。
void toggle(bool condition, bool &variable) // Used to toggle variables
{
}
条件参数将是控制器上的一个按钮(例如 buttonA),而 variable 参数是对需要切换的变量的引用(例如蹲下)
问题在于,由于控制器输入不断被读取,玩家无法足够快地按下和释放按钮,以至于它不会被多次读取,这导致我试图切换的变量只是快速来回切换.我想要的行为是,当按下 A 时,蹲下的值会变为与它相反的值(蹲下 = !蹲下)但我只希望它在按下按钮时运行一次并等待它被释放在再次调用该函数之前。我已经尝试过,但我想不出一个算法来做到这一点。任何帮助表示赞赏!
【问题讨论】:
-
如果可以的话,为什么在释放按钮而不是按下按钮时不调用此函数?
-
另一种方法是感知按钮值的变化以及按钮值的位置。您显然希望对特定的按钮转换做出反应,而不仅仅是按钮位置。
-
准备好处理contact chatter问题。