제가 2명이서 할 수 있는 공 튕기는 게임을 만들고있는데요..
class MyKeyListener extends Thread implements KeyListener { // 키보드 입력 소스
public void keyPressed(final KeyEvent e) {
new Thread(new Runnable() {
@Override
public void run() {
if (e.getKeyCode() == KeyEvent.VK_LEFT && bar > 0) {
bar -= 20;
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT && bar < 335) {
bar += 20;
} else if ()
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
if (e.getKeyCode() == KeyEvent.VK_A && block > 0) {
block -= 20;
}
else if(e.getKeyCode() == KeyEvent.VK_D && block < 335) {
block += 20;
}
}
}).start();
}
@Override
public void keyReleased(KeyEvent e) { }
@Override
public void keyTyped(KeyEvent e) { }
}
지금 이 키보드 입력 소스에 대해 설명부터 드리면
키보드 입력받아서 방향좌우키를 누르면 bar라는 그래픽이 좌우로 20만큼 움직이고
A와 D키를 누르면 block이라는 그래픽이 좌우로 20만큼 움직이는 소스입니다.
여기서 문제점이 쓰레드를 이용했음에도 불구하고.. 방향 좌,우 키를 연속적(키를 계속 누르고 있는 상태)으로 입력되고 있을 경우에,
동시에 A 또는 D키 입력이 되지 않습니다ㅠㅠ
반대의 경우도 마찬가지로 A, D키를 계속 누르고 있는 동안은 방향 좌,우키가 먹통이 되요ㅠㅠ
어떤 문제인건지 알려주시면 정말 감사하겠습니다!!