2014-01-18 3 views
1

Я пытаюсь создать 2D-игру Dungeon Crawlers в Java. Я установил его, когда нажата клавиша x, атака рыцаря. Проблема в том, что когда я нажимаю клавишу x, рыцарь атакует, но он продолжает атаковать, и рыцарь может продолжать убивать скелеты. Мне интересно, будет ли простой способ таймаута нажатия клавиши после 500 мс.Java 2d Games Key Listener Time Limit

Код

public Knight k = new Knight(); 

private class TAdapter extends KeyAdapter { 
    public void keyReleased(KeyEvent e) { 
     k.keyReleased(e); 
    } 
    public void keyPressed(KeyEvent e) { 
     k.keyPressed(e); 
    } 
} 

//Code in Knight 

public void keyPressed(KeyEvent e) { 
     int key = e.getKeyCode(); 
     if ((key == KeyEvent.VK_X)) { 
       Attacking = true; 
     } 
} 

public void keyReleased(KeyEvent e) { 
     int key = e.getKeyCode(); 
     if ((key == KeyEvent.VK_X)) { 
       Attacking = false; 
     } 

} 

ответ

0

Ваш код написан для установки атаки пока клавиша нажата, и отключить атаку при отпускании клавиши.

Вместо этой реализации вы можете написать, что атака начнется нажатием клавиши, вызвав метод, который предоставит функции атаки и в функциональности метод реализует всю логику, где вы можете явно установить все условия.

Вы можете гарантировать, что атака прекратится при отпускании ключа, как вы уже делали.