设计决策——如何在游戏中处理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
创建一个单例类来存储您的图像,并创建getImage方法,该方法接受颜色并返回图像图标