2010-10-12 11 views
0

J'ai actuellement un jeu qui utilise un seul UIView pour dessiner un certain nombre de sprites sur l'écran dans sa méthode drawrect chaque tic de jeu. J'ai été informé que pour la performance, il serait préférable de séparer chaque sprite dans son propre UIView.Fractionner un UIView principal en plusieurs UIViews pour le Dessin de Sprite (Quartz 2d)

Mes questions sont les suivantes:

  • Structurellement comment ça marche? Est-ce que je crée un UIView puis j'ajoute d'autres UIViews en tant que sous-vue?
  • Le gamecontroller doit-il appeler un UIView puis l'appel UIView le suivant? Ou devrait-il revenir au contrôleur de jeu.

Un grand merci à l'avance,

Martin

Répondre

1

Vous voudrez peut-être envisager d'utiliser CALayers au lieu de UIViews si vous allez créer un tas de récipients séparés, ils seront plus rapides pour les opérations d'animation de base

Si vous utilisez UIViews, vous auriez une vue parent, puis ajoutez vos autres sous-vues, si vous utilisez CALayers vous ajouteriez vos couches en tant que sous-couches à la vue principale.

+0

Merci Ben. Donc, avec un CALayer, voulez-vous simplement transmettre les données du gamecontroller de la même manière? Donc vous utiliseriez la coordonnée x pour savoir où le sprite doit se déplacer et utiliser l'animation de base pour vous déplacer jusqu'à ce point? Si j'utilise UIViews - comment ajouter les sous-vues - est-ce que j'utiliserais "addsubview" dans le premier UIView? – GuybrushThreepwood

+0

Oui, utilisez addSubView pour ajouter des sous-vues à une vue parent et ajouterSublayer pour ajouter des sous-couches à un calque parent. L'un ou l'autre devrait fonctionner, mais CA sera plus optimisé si vous utilisez directement des calques. – Ben