触发器乐趣
一段时间以来,我一直在尝试使用 c 中的游戏手柄编写一些功能。当按下游戏手柄上的按钮时,调用vexRT[Btn4D]
(“4D”仅表示向下方向的第四组按钮)将返回 true 或 false。如果您有一个布尔值,比如 x,并且您想通过单次按下和释放按钮来打开“x”并让它保持打开状态,那么没有预定义的简单方法/功能。所以我花了一些时间想出了一个简单的触发器,可以在这里看到:
if (vexRT[Btn7D]) {
if (y)
x = false;
else
x = true;
}
else if (counter == 0) {
counter = 25;
if (x)
y = true;
else
y = false;
}
else
counter--;
然后简单地说,你可以只说 if (x) 或 if (!x) 并做任何你想做的事情。
问题是我在游戏板上有 8 个按钮,我希望它们每个都有自己的“翻转”能力。我可以简单地复制代码八次,创建一个新变量,例如 x2 和 counter2,但这似乎是多余的。我尝试制作一种可以缩短总代码的方法,但我知道它不起作用。无论如何,这里是:
bool tFlip(bool x) {
bool y = !x;
if (y)
return true;
else
return false;
}
长话短说,如果有人知道如何正确编码这些东西,我很想知道。我试过谷歌搜索,但我找不到任何东西。谢谢。
TLDR:有人知道如何编写触发器吗?
编辑:这都在一个循环中,所以我不能简单地做
x = !x
因为按下按钮时会不断调用它;当您释放时,x 的值基本上是“随机的”。y 在那里充当“等到按键释放”,因为没有本机按键/按键检测方法。