私は Java の経験があり、Swing (フォーム タイプのアプリ) を少し使ったことがありますが、それ以上のパワーを必要としたことは一度もないので、GUI に関してフードの下で何が起こっているかについてはあまり知りません。これが、私が行ってきた少しの読書から得たものです。きっとオフです。
スペース インベーダー タイプのゲームを作成するにあたり、私が考えた 2 つのアプローチは次のとおりです。
- すべてのインクリメンタル ペイントとレイヤリング用に 1 つの大きなコンポーネントとコードを作成します。
- テキストと画像を含む JLayeredPane にネストされた絶対配置の JPanel の束を作成し、再描画が必要な可能性があるものだけで repaint() を呼び出します。次に、paintComponent() をオーバーライドします (以前のコンテンツが自動的にクリアされるかどうかは不明です)。私が読んだところによると、これにより、画面全体を再描画することなく、コンポーネントのレイヤー化と再描画が処理されます。
これは正しいです?もしそうなら、どの方法がプロジェクトに適していますか?