if(obj1==1) { if(key==3) { money+=10; } if(key==4&&money!=0) { money-=10; } }如何让该函数按一下加一下而不是按一下加很多下
时间: 2023-08-23 12:05:55 浏览: 85
你可以使用一个状态变量来记录上一次按键操作的时间,然后在下一次按键操作时检查时间间隔是否超过了一定的阈值。如果超过了阈值,则执行对应的加减操作,否则不执行任何操作。这样就可以避免按一下加很多下的问题。
以下是一个示例代码:
```
// 定义变量记录上一次按键操作的时间
unsigned long lastKeyPressTime = 0;
void handleKeyPress(int obj1, int key) {
// 检查是否按下了加号按钮并且上一次按键操作距离现在超过了500毫秒
if (obj1 == 1 && key == 3 && millis() - lastKeyPressTime > 500) {
money += 10; // 执行加10操作
lastKeyPressTime = millis(); // 记录当前时间为上一次按键操作的时间
}
// 检查是否按下了减号按钮并且上一次按键操作距离现在超过了500毫秒
if (obj1 == 1 && key == 4 && money != 0 && millis() - lastKeyPressTime > 500) {
money -= 10; // 执行减10操作
lastKeyPressTime = millis(); // 记录当前时间为上一次按键操作的时间
}
}
```
在这个示例代码中,我们使用 `millis()` 函数来获取当前时间,并且将上一次按键操作的时间与当前时间进行比较,如果时间间隔超过了500毫秒才执行加减操作。这样可以避免连续按键操作导致加减很多的问题。
阅读全文