Я написал прорывную игру, в которой я обрабатываю ввод с помощью java.awt.event KeyListener.
Каждый раз, когда я вызываю repaint ();в моем таймере javax.swing я проверяю ввод с клавиатуры и в зависимости от того, какая клавиша нажата, я увеличиваю / уменьшаю положение x моего проигрывателя.Проблема в том, что когда я хочу двигаться в противоположном направлении, мой игрок на мгновение останавливается, а затем начинает двигаться.Я знаю, что это реально, но я не хочу, чтобы это было функцией.Я хочу, чтобы игрок двигался в противоположном направлении.
Мой таймер вызывается каждые 1000/60 секунд
@Override
public void actionPerformed(ActionEvent e) {
switch(keyHandler.key) {
case "LEFT":
player.x -= player.speed;
break;
case "RIGHT":
player.x += player.speed;
break;
default:
}
repaint();
}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_LEFT:
case KeyEvent.VK_A:
case KeyEvent.VK_NUMPAD4:
key = "LEFT";
break;
case KeyEvent.VK_RIGHT:
case KeyEvent.VK_D:
case KeyEvent.VK_NUMPAD6:
key = "RIGHT";
break;
default:
key = "" + e.getKeyChar();
}
}