私はjavaでgalagaクローンを作成しています。私はゲームのループの基礎を理解しようとしており、私はいくつかの問題/質問があります。私はすべてのゲームオブジェクトの位置を変更する更新メソッドを持っており、私は上記オブジェクトのすべての更新された位置を描画する描画メソッドを持っています。私はpaint()メソッドを呼び出すべきでしょうか?どのようにオブジェクトを再描画するのですか(画面をクリアしてからすべてを再び描画します)また、私のupdate()メソッドを固定レートで呼び出す最良の方法は何ですか?どのような入力をありがとう。Javaグラフィック/ベーシックゲームループ
public Galaga() throws IOException
{
//set the background
setBackground(Color.BLACK);
//create a controller
c = new Controller();
addKeyListener(c);
setFocusable(true);
//create a player
player = new Ship(40,50);
running = true;
}
public void paint(Graphics g)
{
super.paint(g);
}
//game loop
public void run()
{
while(running)
{
draw(getGraphics());
if(c.right())
player.move(1, 0);
}
}
//update logic
public void update()
{
}
//renders all objects
public void draw(Graphics g)
{
player.draw(g);
}
を見ている必要があります/javase/tutorial/extra/fullscreen/rendering.html) –
スイングについて学びたいのであれば、あなたは何をしているのですか?しかし、あなたが実際にゲームを作ろうとしているならば、[Swingはおそらくうまくいかないでしょう。](https://pavelfatin.com/low-latency-painting-in-awt-and-swing/)そこに[ゲームのためのより良いオプションです。](https://www.lwjgl.org/) – markspace