キー入力は機能しますが、一度に 2 つ以上のキーを押すと遅延が発生します。また、方向を切り替えるときに 1 秒の遅延があります。どうすればこの問題を解決できるのだろうかと思っていました。
public void keyPressed( KeyEvent ke )
{
switch(ke.getKeyCode()) {
case KeyEvent.VK_DOWN: spaceship.ypos+=12; break;
case KeyEvent.VK_UP: spaceship.ypos-=12; break;
case KeyEvent.VK_LEFT: spaceship.xpos-=12; break;
case KeyEvent.VK_RIGHT: spaceship.xpos+=12; break;
}
repaint();
}
私が話していることを理解するためにさらにコードが必要な場合は、さらに追加できます。\
編集:ブール値がアクティブであるかどうかを常にチェックするスレッドを備えたメインクラスを追加することで問題を解決したため、遅延はありませんでした。
public class MainLoop implements Runnable{
public MainLoop(){
}
public void run(){
while(true){
if(up){ spaceship.ypos-=8; }
if(down){ spaceship.ypos+=8; }
if(left){ spaceship.xpos-=8; }
if(right){ spaceship.xpos+=8; }
repaint();
try {
Thread.sleep(20);
}
catch (InterruptedException ex){
}
}
}
}`