如標題所示,在我的Java游戲中,無法檢測是否同時按下空格鍵和其他鍵。
例如,空格鍵是射擊鍵,而箭頭鍵則使玩家移動。如果我按下向上箭頭鍵,向左箭頭鍵和空格鍵,那么它應該向左上方發射子彈。
但是,在使用倍數System.out.println();進行調試之后,我發現如果按下兩個鍵,則如果按下空格鍵,則不會檢測到空格鍵。
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == 32){
pressingSpacebar = true;
System.out.println("Spacebar pressed true");
}
// Up arrow key
if(e.getKeyCode() == 38){
up = true;
System.out.println("Up = true");
}
// Down arrow key
if(e.getKeyCode() == 40){
down = true;
System.out.println("Down = true");
}
// Right arrow key
if(e.getKeyCode() == 39){
right = true;
System.out.println("Right = true");
}
// Left arrow key
if(e.getKeyCode() == 37){
left = true;
System.out.println("Left = true");
}
}
然后在keyReleased中:
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == 38){
up = false;
repaint();
}
if(e.getKeyCode() == 40){
down = false;
repaint();
}
if(e.getKeyCode() == 39){
right = false;
repaint();
}
if(e.getKeyCode() == 37){
left = false;
repaint();
}
if(e.getKeyCode() == 32){
pressingSpacebar = false;
}
}
這是我檢查是否按空格鍵和多個鍵的方式:
if(pressingSpacebar){
if(right == true && down == true && up == false && left == false){
// Shoot bullet
}
}
為什么未檢測到空格鍵?如果我不檢查是否按下空格鍵,則子彈射擊很好,但是當我檢查空格鍵時,它不會檢測到它。
注意:我已經閱讀了與此問題類似的其他帖子,但答案不是很有幫助。當涉及到這些東西時,我是一個新手,所以請嘗試給出一個簡單的答案或進行一些解釋。提前致謝!