2 回答

TA贡献1757条经验 获得超8个赞
使用类级属性集合可以确定按下了哪些其他键。您必须为在迭代列表的函数中按下多个键实现逻辑。还要从函数的列表中删除该键。keyPressed
keyReleased

TA贡献1852条经验 获得超1个赞
boolean keyA=false;
boolean keyD=false;
// keys
@Override
public void keyPressed(KeyEvent e) {
int key= e.getKeyCode();
if(key==KeyEvent.VK_A){
keyA=true;
}
if(key==KeyEvent.VK_D){
keyD=true;
}
}
@Override
public void keyReleased(KeyEvent e) {
int key= e.getKeyCode();
if(key==KeyEvent.VK_A){
keyA=false;
}
if(key==KeyEvent.VK_D){
keyD=false;
}
//In constructor
new Thread(()->{
while(true){
try{Thread.sleep(10);}
catch (InterruptedException e){}
if(keyA)
player.moveLeft();
if(keyD)
player.moveRight();
}
}).start();
请注意,的用法使生活变得更加简单。另外,请确保线程中有 sleep(),因为如果它只是 while(true),循环中的任何内容都不会执行。KeyEvent.VK_A
添加回答
举报