簡単なスペースシューターを書く予定です。repaint() メソッドは単なるリクエストであり、呼び出されるたびに実行されるわけではないことを読みました。宇宙船を動かしているときに宇宙船がわずかに遅れる傾向があるため、これの影響に気付いていると思います。現在、私は単純に JPanel の paintComponent() メソッドで自分の船を描いており、定期的に repaint() を呼び出し続けています (私のパネルも Runnable です)。repaint() が私を台無しにする可能性があるので、それを回避する方法を見つけようとしていますが、アイデアが不足しています。私がこれまでに持っているコード:
private void renderGraphics() {
if (MyImage == null) {
MyImage = new BufferedImage(getPreferredSize().width,
getPreferredSize().height, BufferedImage.TYPE_INT_RGB);
}
MyGraphics = MyImage.getGraphics();
MyGraphics.setColor(Color.BLACK);
MyGraphics.fillRect(0, 0, getPreferredSize().width, getPreferredSize().height);
MyGraphics.drawImage(ship.getImage(), ship.getCurrentX(), ship.getCurrentY(), null);
}
アイデアは、独自のグラフィックを作成し、JPanel に描画させ、run() メソッドで repaint() の代わりにこれを呼び出し続けることでしたが、その方法がわかりません。この件に関するご意見をお待ちしております。