哪些选择是更好的绘图对象设计?

时间:2010-04-02 13:29:17

标签: performance drawing xna

在GameObject类或Game类中编写绘图方法会有什么更好的做法?

GameObject obj = new GameObject();
obj.Draw();

GameObject obj = new GameObject();
DrawGameObject(obj);

1 个答案:

答案 0 :(得分:1)

这取决于GameGameObject负责的内容。通常,GameObject将包含有关要绘制的的所有信息 - 例如,它有一个模型。但是对象并不是彼此独立的 - 知道要绘制的是不足以知道如何来绘制它。

因此,Game可能比GameObject知道更多。特别是,它可能知道:

  • 是否应该绘制特定对象(例如,基于当前相机将其遮挡)
  • 如何绘制特定物体(来自其他物体的阴影;来自附近表面的反射;环境光因子等等)

在提出的两个选项中,将Draw方法放在GameObject之外可能更有意义。