Какой из этих вариантов лучше подходит для рисования объектов? - PullRequest
1 голос
/ 02 апреля 2010

Что было бы лучше, написав метод рисования внутри класса GameObject или в классе Game?

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

или

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

1 Ответ

1 голос
/ 02 апреля 2010

Это зависит от того, за что отвечают Game и GameObject. Как правило, GameObject будет содержать всю информацию о , что нарисовать - например, у него будет модель. Но объекты не являются независимыми друг от друга - знание того, что рисовать, недостаточно, чтобы знать , как рисовать его.

Так что Game, вероятно, знает намного больше, чем GameObject. В частности, он может знать:

  • независимо от того, следует ли рисовать конкретный объект (например, он закрыт на основе текущей камеры)
  • как рисовать определенный объект (тени от других объектов; отражения от близлежащих поверхностей; факторы окружающего освещения и т. Д.)
  • и т.д.

Из двух представленных вариантов, возможно, имеет смысл поместить метод Draw вне GameObject.

...