0

我已经在包括这个论坛在内的很多论坛上进行了搜索,但我找不到任何答案。给我的许多解决方案看起来像这样:

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

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

然而这是不正确的,因为当我按住一个键时,keyPressed 函数会不断调用millis()。因此,当释放键时,记录的时间会打印出一个接近于零的数字!

如何只进行一次 keyPressed 调用 millis() ?

4

1 回答 1

0

您可以只使用 aboolean来跟踪您是否已经设置了该值。像这样的东西:

boolean recorded = false;

void keyPressed(){
  if (key == 'e' && !recorded){
    t = millis();
    recorded = true;
  }
}
于 2018-04-01T18:10:19.130 回答