Cocos2d iPhone - Sprite clip / masque / cadre
comment puis-je clip/culture/masque ou tout simplement définir le cadre d'une CCSprite dans Cocos2D?
Quelque chose de similaire à:
le cadre de UIView, avec l'écrêtage des sous-vues = TRUE
Mon CCSprite Principal Sprite plusieurs Enfant Sprite ajouté.
Je ne veux Masque partie de la Principale Sprite Sprite visible.
Est-il un moyen de clip ou de l'utilisation d'un masque pour CCSprite?
J'ai pu couper le fond et la couche sur le dessus, laissant seulement que la zone visible, mais est-ce le seul moyen?!
voici une image de l'échantillon démonstration de ce que je suis en train de réaliser:
le texte d'alt http://dnamique.com/maskSprite.jpg
source d'informationauteur Bach
Vous devez vous connecter pour publier un commentaire.
J'ai fini par utiliser GL_SCISSOR.
dans MainSprite je impemented:
Ce sera un clip ou d'un masque de la zone spécifiée.
Le seul problème est que en mode Paysage Cocos2D a 0,0 dans le bas-côté gauche de l'écran, tandis que OpenGL a elle au coin inférieur droit comme il ne prend pas en considération l'orientation de l'écran.
En d'autres termes, pour OpenGL considérer que vous avez une rotation du portrait de l'Écran.
J'ai écrit un ClippingNode classe qui fait exactement cela. Vous pouvez ajouter d'autres nœuds (les sprites, les étiquettes, etc.) à la ClippingNode et ils ne seront établis dans la région spécifiée par le ClippingNode. Il prend également le dispositif de rotation en compte.
En interne, il utilise GL_SCISSOR_TEST comme dans Bach réponse.
http://www.learn-cocos2d.com/2011/01/cocos2d-gem-clippingnode/
J'ai essayé d'utiliser Steffen Itterheim de ClippingNode, mais a été incapable de trouver du travail dans un assez robuste
assez mode pour mes besoins.
Croyez le ou non, le code ci-dessous fonctionne assez bien et doit être le code complet. Il gère les changements d'orientation de l'appareil, anchorPoint, de position, d'échelle (scaleX, scaleY). Pour cocos2d v2, vous aurez juste besoin de
commentaire de la glPushMatrix et glPopMatrix appels..
À utiliser, il suffit de régler la position et le contentSize propriétés et d'ajouter de l'enfant/des enfants, vous voulez accroché à ce ClippingNode instance. Le contentSize propriété est utilisée pour définir les dimensions de la zone de découpage.