记录时间在处理中保留一个键



我在包括这个论坛在内的许多论坛上搜索过,我看不出为此找到任何答案。给我的许多解决方案看起来像这样:

void keyPressed(){
  if (key == 'e'){
    t = millis();
  }
}
void keyReleased(){
   if (key == 'e'){
    t = millis()-t;
    println(t);
   }  
}

这是不正确的,因为当我握住钥匙时,按键功能会连续调用Millis((。因此,当键发布时,记录的时间打印一个接近零!

的数字

如何仅使键为呼叫millis((一次?

您可以使用一个boolean跟踪您是否已经设置了值。这样的东西:

boolean recorded = false;
void keyPressed(){
  if (key == 'e' && !recorded){
    t = millis();
    recorded = true;
  }
}

最新更新