1 回答

TA貢獻2036條經驗 獲得超8個贊
println()
眾所周知,該功能在計時方面很糟糕,因此對于這樣的微基準測試,我不相信它。
此外,該key
變量保存了與之交互的最后一個鍵,這可能是您釋放的鍵而不是您按下的鍵。例如,考慮以下事件序列:
我按下了
a
鍵。該key
變量變a
。我按下了
s
鍵。該key
變量變成s
。現在我松開
a
鑰匙。的key
變量切換回a
。我仍然握著
s
鍵,所以一秒鐘后,我的鍵盤觸發了另一個s
鍵事件,將key
變量切換到s
.
如果你想在鍵盤事件更細粒度的控制,我建議使用類似事件的功能keyPressed()
和keyReleased()
。您可能希望使用在事件函數中設置的一組變量來跟蹤按下了哪些鍵。下面是一個例子:
boolean aPressed = false;
boolean sPressed = false;
void draw(){
if(aPressed){
// a is pressed
}
if(sPressed){
// s is pressed
}
}
void keyPressed(){
if(key == 'a'){
aPressed = true;
}
else if(key == 's'){
sPressed = true;
}
}
void keyReleased(){
if(key == 'a'){
aPressed = false;
}
else if(key == 's'){
sPressed = false;
}
}
無恥的自我推銷:這里是處理輸入事件的教程。請參閱處理多個按鍵部分以閱讀有關此方法的更多信息。
添加回答
舉報