2014-02-16 2 views
1

Привет, я делаю программу для чтения чата, и если чат - это определенная вещь, она нажимает определенный ключ. Я заметил, что код работает, но не тогда, когда я в игре. КОД:Код будет печатать символы, но не совершать игру.

if (message.equals("up")) 
      { 
       try { 
        Robot robot = new Robot(); 

        robot.keyPress(KeyEvent.VK_W); // press a 
        robot.keyRelease(KeyEvent.VK_W); // release a 

       } catch (AWTException e) { 
        e.printStackTrace(); 
       } 
      } 

Я попытался сделать так, чтобы было больше нажатий клавиш, потому что я думал, что это может быть скорость, что он вводит в это быстро обнаружить. Я потерял любую помощь, очень приветствуется!

+0

Unfortunatley Я не представляю, как выглядит игра. Возможной ошибкой может быть то, что игрок или фигура перемещаются, когда нажата кнопка, в данном случае «a». Поэтому, если keyPress и keyRelease вызываются сразу после друг друга, время между двумя командами должно быть коротким, чтобы заставить игрока двигаться. – ROT13

+0

Извините за полный ответ - должен быть комментарий - но почему у вас есть 'robot.keyPress' и' robot.keyRelease' вызов прямо рядом друг с другом ?? Не будет ли это отрицать влияние нажатия клавиши? – BruceWayne

+0

Никогда не думал об этом, есть ли команда «sleep» в java? Btw, который работает после того, как я поспаю, затем отпустите ключ: D – Fusion

ответ

1

Вам нужно добавить код, чтобы подождать некоторое время между нажатиями клавиш. Нажатие этой скорости, скорее всего, будет считаться «подпрыгиванием». См. Эту ссылку на debouncing

Смежные вопросы