记录密钥在 Processing 中的保存时间
Record time a key is held in Processing
我在包括这个论坛在内的许多论坛上进行了搜索,但我找不到任何答案。给我的许多解决方案如下所示:
void keyPressed(){
if (key == 'e'){
t = millis();
}
}
void keyReleased(){
if (key == 'e'){
t = millis()-t;
println(t);
}
}
这是不正确的,因为当我按住一个键时,keyPressed 函数会不断调用 millis()。所以当释放键时,记录的时间打印出一个接近于零的数字!
如何让 keyPressed 只调用 millis() 一次?
您可以只使用 boolean
来跟踪您是否已经设置了值。像这样:
boolean recorded = false;
void keyPressed(){
if (key == 'e' && !recorded){
t = millis();
recorded = true;
}
}
我在包括这个论坛在内的许多论坛上进行了搜索,但我找不到任何答案。给我的许多解决方案如下所示:
void keyPressed(){
if (key == 'e'){
t = millis();
}
}
void keyReleased(){
if (key == 'e'){
t = millis()-t;
println(t);
}
}
这是不正确的,因为当我按住一个键时,keyPressed 函数会不断调用 millis()。所以当释放键时,记录的时间打印出一个接近于零的数字!
如何让 keyPressed 只调用 millis() 一次?
您可以只使用 boolean
来跟踪您是否已经设置了值。像这样:
boolean recorded = false;
void keyPressed(){
if (key == 'e' && !recorded){
t = millis();
recorded = true;
}
}