1

私はゲームを構築している最中です。

私はオブジェクトGa​​mePieceを持っています(カードデッキもあります)

public enum PieceColor
{
    Blue=0,
    Yellow,
    Red,
    Green
}

public class GamePiece : PictureBox
{
    PieceColor _color;
    public PieceColor Color {
        get {

            return _color;
        }
        set
        {
            _color = value;

            if (_color == PieceColor.Blue)
                this.Image = global::GameEntities.Properties.Resources.pieceBlue;
        }
    }

私が考えていたのは、4つの画像、各色の1つをImageListに入れてから、上記の行を次のように変更することです

  this.Image = ImageList[(int)_color];

これで私が予見する問題は、すべての GamePiece に対して ImageList を作成することになり、それがメモリに負担をかけることです。

いくつかのオプションがあります

  • ImageList オブジェクトの静的クラスを作成し、すべての部分がその静的クラスを参照するようにします
  • 4 つのピースすべてを 1 つのイメージとして 1 つのリソース ビットマップを作成し、サイズ操作を使用して 1 つのピースのみを表示します。
  • コードはそのままにして、4 つの異なる IF ステートメントを記述します。

だから私の質問は、

  • 何度も使用される同じイメージでメモリを管理する場合、どちらのソリューションが優先されますか?
  • 画像を表示する際のデザイン パターン、またはその他の関連するゲーム コンセプトについて学習できるものはありますか?

ありがとうございました

4

1 に答える 1

1

画像を格納するシングルトン クラスを作成し、色を受け取って画像アイコンを返す getImage メソッドを作成します。

于 2013-03-01T17:43:58.657 に答える