У меня есть вопрос о том, как преодолеть проблему с клавиатурой. Когда я нажимаю определенные клавиши, такие как «вверх» и «вниз», метод keyPressed продолжает активироваться, но когда я нажимаю клавиши типа «w» или «s», метод активируется только один раз, пока я не отпущу и не нажму его снова. Я хотел бы знать, как имитировать повторные нажатия клавиш.Java: только для ввода на клавиатуре Mac только один раз
здесь класс для ввода:
public class Input extends KeyAdapter{
private GameObject p1;
private GameObject p2;
public Input(Handler handler){
p1 = handler.object.get(0);
p2 = handler.object.get(1);
}
public void keyPressed(KeyEvent e){
System.out.println("thismethodactivated");
int key = e.getKeyCode();
if(key == KeyEvent.VK_W) p1.setVelY(-5);
if(key == KeyEvent.VK_S) p1.setVelY(5);
if(key == KeyEvent.VK_D) p1.activate(1);
if(key == KeyEvent.VK_UP) p2.setVelY(-5);
if(key == KeyEvent.VK_DOWN) p2.setVelY(5);
if(key == KeyEvent.VK_LEFT) p2.activate(1);
}
public void keyReleased(KeyEvent e){
int key = e.getKeyCode();
if(key == KeyEvent.VK_W) p1.setVelY(0);
if(key == KeyEvent.VK_S) p1.setVelY(0);
if(key == KeyEvent.VK_UP) p2.setVelY(0);
if(key == KeyEvent.VK_DOWN) p2.setVelY(0);
}
}
Спасибо за помощь, но я понял способ сделать то же самое в другом классе –