2010-04-02 3 views

Répondre

1

Cela dépend de ce Game et GameObject sont responsables. Typiquement, un GameObject contiendrait toutes les informations sur ce que dessiner - il aurait un modèle, par exemple. Mais les objets ne sont pas indépendants les uns des autres - sachant ce que dessiner n'est pas suffisant pour savoir comment pour le dessiner.

Donc, un Game sait probablement beaucoup plus qu'un GameObject. En particulier, il peut savoir:

  • si oui ou non un objet particulier doit être établi (par exemple, il est occlus en fonction de la caméra en cours)
  • comment pour dessiner un objet particulier (les ombres d'autres objets ; réflexions des surfaces voisines, les facteurs de lumière ambiante, etc.)
  • etc.

Parmi les deux options présentées, il est probablement plus judicieux de mettre le Draw méthode en dehors du GameObject.

+0

Merci, super commentaire, et merci pour le montage, je ne savais pas comment exprimer ma question. Y a-t-il une différence de performance? – Adir

+0

C'est probablement _worse_ performance de mettre 'Draw' sur' GameObject', car alors chaque 'GameObject' devrait connaître tous les autres, alors qu'un' Game' peut probablement être plus intelligent et résoudre toutes ces interactions plus succinctement. –

+0

De même, si vous construisez un graphique d'objets à dessiner et que vous ne devez dessiner que des objets de jeu qui seraient visibles à l'écran, le gestionnaire d'objets de jeu serait celui à dessiner sur chacun de vos objets de jeu. Votre deuxième option implique que l'objet de jeu lui-même sache quand se dessiner, ce qui est en dehors de sa responsabilité. –

Questions connexes