我目前正在使用 XNA 构建游戏,我目前的游戏对象组件设置如下:
class Character : GameComponent
{
public int health, state;
public float speed;
}
等等。自从制作菜单系统以来,我一直在玩数据容器类型的对象,比如我有一个 DataContainer 的基类,然后是 IntContainer、FloatContainer 等子类。根据它们的子类,它们返回它们包含的数据类型。我想将此菜单系统连接到组件,以便我可以轻松编辑它们,我想知道是否应该更改我的组件以也采用这种保存通用数据容器而不是显式类型数据的模型,就像这样:
class Character : GameComponent
{
public DataContainer[] data;
public int health()
{
return (data[0].getValue());
}
}
我可以像上面一样保留适当命名的方法,因此在代码中按名称获取值仍然很简单。将我的引擎换成这种数据存储方法需要一些工作,所以我想知道是否有人输入过,更通用的方法是否会以任何可衡量的方式影响性能?调用两种方法获取值是否比直接获取值更糟糕?