2010-06-22 5 views
0

J'ai une question à propos du modèle de conception Model View Controller (MVC) pour les jeux iphone.iphone MVC question de conception de jeu

Disons que j'ai un jeu simple qui utilise un ViewController. Donc, ce contrôleur de vue a une fenêtre/vue associée et prend des entrées de joueur de curseurs de boutons, etc. sur cette vue.

Maintenant, j'ai aussi une sous-vue de la fenêtre principale/vue et je ne fait une animation de la ViewController de divers polygones dans cette sous-vue. Je veux également prendre des événements tactiles dans cette sous-vue. Ma question est, dans la sous-vue, j'ai tout le code tactile d'utilisateur et le code d'animation que l'entrée tactile du joueur affecte l'animation changeant directement la rotation etc. Il y a beaucoup de variables dans ma classe subview. Est-ce que je viole la conception de MVC? Dois-je déléguer ce matériel à une autre classe ou au contrôleur de vue?

Un grand merci

Répondre

0

Cela dépend de ce que vous essayez d'accomplir. Supposons que vous voulez que votre jeu fonctionne sur un PC ordinaire, ainsi que sur l'iPhone.

De toute évidence, vous souhaitez isoler tout le code spécifique à l'iPhone, qui comprend les touches. Je suppose que vous voulez l'animation sur les deux versions de votre jeu, donc cela ferait partie du contrôleur, ou peut-être le modèle. Le rendu de l'animation ferait partie de la vue.

La meilleure façon de déterminer quelles fonctions appartiennent à la vue, et qui appartiennent les fonctions du contrôleur, est d'imaginer le portage de votre application à deux téléspectateurs différents. Il ne doit pas être un PC et un iPhone. Ce peut être Android et un iPhone. :-)

+0

cool merci. Plus précisément, si ma sous-vue personnalisée a les rappels touchesBegan etc., comment puis-je les faire communiquer avec ma classe de contrôleur? – songBong

+0

Pensez aux concepts que les touches accomplissent. Je ne connais pas votre application particulière, mais des concepts généraux tels que le zoom avant, le zoom arrière, l'image précédente et l'image suivante me viennent à l'esprit. Votre point de vue est concerné par les touches. Votre contrôleur gère les concepts applicables à votre application. –