javax.swing.JFrame
ダブルバッファ戦略を使用してゲームアニメーションを描画するために使用しています。まずはフレームを組み立てます。
JFrame frame = new JFrame();
frame.setVisible(true);
今、私はこのようにオブジェクトを描きます(それは円で構いません)。
frame.createBufferStrategy(2);
bufferStrategy = frame.getBufferStrategy();
Graphics g = bufferStrategy.getDrawGraphics();
circle.draw(g);
bufferStrategy.show();
問題は、描画が行われるときにフレームが常に完全に設定されていないことです.
JFrame は、最終的なサイズに達するまで、サイズを変更するために最大 3 つのステップを必要とするようです。これにより、図面がフレームから外れたり、完全に表示されなくなったりすることがあります。
私はすでに を使用して物事を遅らせることができましたSwingUtilities.invokeLater()
。これにより結果は改善されましたが、描画がスライドして離れたり、時期尚早に描画されたように見えることがあります。
アイデア/戦略はありますか?前もって感謝します。
編集:これまでのところありがとうございます。そもそも、ちょっとした Pong ゲームを書いているとは言いませんでした。混乱して申し訳ありませんが、私が実際に探していたのは、Java で行われる高速化されたゲーム アニメーションの適切なセットアップでした。提案を読んでいると、ここで(間接的ではありますが)私の質問に答えていることがわかりました。この例では、物事が明確になりました。
これを要約すると、Java でゲーム グラフィックスをアニメーション化するための最初のステップは、GUI ロジックのオーバーヘッドを取り除くことです。
パッシブレンダリングとアクティブレンダリングの違いに関するチュートリアル記事があります。それは初心者の頭をきれいにするのに役立つかもしれません...