У меня есть эта игра, шутер (2-игровая игра, связанная со слотом датаграммы), и у нее есть корабль.keyPressed event с фиксацией ключа
У меня есть компонент краски для рисования корабля.
до и вниз клавиши для перемещения p2
ж и сек клавиши для перемещения p1
Когда до ключа нажата:
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_UP: sendData("up start"); break;
мой (напр.) хоста выполняет sendData("up start")
который посылает указанную строку в клиента и, когда клиент получает это, он выполняет shoot.p1.moveUP();
, который перемещает p1 корабля на другой клиент 1 пиксель вверх.
Когда я двигаю p2 корабля (напр.) хоста (нажмите клавишу вверх один раз), то p2 корабль на клиента перемещается на 1 пиксель.
(да, каждый раз, когда я нажимаю кнопку вверх на хосте, клиент p2 перемещается 1 пиксель)
Но когда я продлевают на нажатие клавиши (удерживайте клавишу вверх), тем не менее, она движется всего 1 пиксель, даже если окрашенный корабль на хосте двигается, пока я держу ключ.
Как я могу выполнить sendData("up start")
, когда ключ удерживается? Я думаю, keyPressed
просто выполняет его один раз, когда он находится в paintComponent
, который выполняется до тех пор, пока вы находитесь , нажимая ключ.
Я хотел бы, чтобы это решить без использования каких-либо внешних библиотек .. спасибо :)
Этот вопрос не имеет ничего общего с живописью или дейтаграммами. Это просто ключевой вопрос слушателя. – EJP