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;
}
}
无耻的自我推销:这里是处理输入事件的教程。请参阅处理多个按键部分以阅读有关此方法的更多信息。
添加回答
举报