4

小さな Java スイング 2D ゲームで、ボード ビューを作成するための最適なソリューションは何ですか?

  1. ボードのコンポーネントを使用して、それとチェッカーの各正方形を一度にカスタム ペイントしますか?
  2. ボード用のコンポーネントを使用し、正方形のみを処理する独自のペイント コンポーネントで正方形をモデル化する別のコンポーネントを作成します。レイアウトを使用して各 Square インスタンスをボードに配置しますか?

私はこれが主観的なものであることを知っており、それについて争いたくありません. 自分がどの道を行くべきかを理解するための手がかりが必要なだけです。私はサイドプロジェクトを開始し、何かがおかしいと感じて 1) を使用しました。

4

2 に答える 2

6

すべてに 1 つの描画パネル/コンテナを使用するだけです。

タイルベースのゲームを考えてみましょう。2 番目のソリューションを使用すると、各タイルがオブジェクトになり、メモリが急増し、ゲームの速度が遅くなります。

最初のオプションを使用すると、柔軟になります。必要なものを描画すると、パネル座標があるため、すべてがこれに関連しています。タイル ベースの例を使用すると、パネルの高さと幅がわかります。正方形を描画し、必要に応じて X 座標と Y 座標を増やします。

Swing や .NET の Winforms などの GUI フレームワークは、ゲームが必要としない他の多くのものを持っているため、高価です。したがって、あなたの質問に答えるには、ボード上のすべてのチェッカーにパネルを使用すると言うのではなく、オプション 1 を使用してください。

最初の方法と組み合わせて 2 番目の方法を使用するための 1 つの優れたソリューションは、Flyweight デザイン パターンです。オブジェクト指向オブジェクトは引き続き使用できますが、通常よりもわずかな量しか使用できません。見てみな。

于 2010-02-17T21:17:55.460 に答える
3

Finglas のように、私はあなたの最初のアプローチに傾倒します。このタイルベースのゲームは具体的な例です。対照的に、このコンポーネント ベースのゲームは のGridLayoutを使用しJToggleButtonます。前者はやや複雑ですが、大画面でも問題なく再生できます。後者はより単純ですが、合理的なゲームには十分です。どちらを優先するかを決定するには、ゲームのジオメトリとロジックを試してみる必要がある場合があります。

于 2010-02-18T05:04:25.267 に答える