设计决策——如何在游戏中处理ImageList以获得良好的内存管理

本文关键字:管理 内存 ImageList 处理 决策 游戏 | 更新日期: 2023-09-27 18:01:50

我正在制作一款游戏。

我有一个对象GamePiece(也会有一个Card Deck)

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;
        }
    }

我想的是把四张图片,每种颜色一张放到ImageList中,然后上面的行可以改为

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

我预见到的问题是,我将为每个游戏设备创建一个ImageList,这是对内存的压力。

有几个选项是

  • 创建一个静态类的ImageList对象,然后有所有的片段引用静态类
  • 创建一个资源位图,将所有4个部分作为一个图像,然后使用大小操作来显示一个
  • 让代码保持原样,只使用四个不同的IF语句

我的问题是,

  • 当涉及到使用相同的图像来管理内存时,一种解决方案优于另一种解决方案吗?
  • 当涉及到显示图像时,是否存在任何设计模式,或任何其他相关的游戏概念,我可以研究?

Thank you

设计决策——如何在游戏中处理ImageList以获得良好的内存管理

创建一个单例类来存储您的图像,并创建getImage方法,该方法接受颜色并返回图像图标