嗨,我有一個問題。我在Java中進行了大約一年的編程,在我的遊戲中沒有任何工作。如果您按下某個鍵,則播放器向前移動,但如果長時間按住該鍵,則播放器會沿相同方向移動太長。 我使用此代碼檢查什麼關鍵球員是緊迫:如何檢測用戶何時真正在Java中發佈密鑰?
private void KeyPressed(java.awt.event.KeyEvent evt) {
key = evt.getKeyCode();
if (key == KeyEvent.VK_W) {
direction = 1;
PlayerMovement();
}
if (key == KeyEvent.VK_S) {
direction = 2;
PlayerMovement();
}
if (key == KeyEvent.VK_D) {
direction = 3;
PlayerMovement();
}
if (key == KeyEvent.VK_A) {
direction = 4;
PlayerMovement();
}
}
任何想法? 謝謝
當用戶釋放某個鍵,你會線程G等「KeyReleased」事件。依靠「KeyPressed」事件的頻率只是在尋求麻煩。 – Ordous
您的操作基於KeyEvent,我認爲這太籠統了。您可以單獨使用KeyPressed或KeyTyped(當輸入字符時)。 –
KeyBindins API也是一個好看的地方。 KeyListener經常有焦點問題 – DarkV1