comment puis-je utiliser l'animation dans cocos2d?
Je suis en train de développer un jeu de Roulette pour iPhone. Comment puis-je l'animation (spin) la Roulette?
source d'informationauteur Nasir
Vous devez vous connecter pour publier un commentaire.
Je n'ai aucune idée de comment faire cela dans cocos2d (ou même ce que c'est), mais vous pouvez le faire à l'aide de Core Animation soit avec CALayers ou UIViews. Probablement la façon la plus simple serait de créer une UIImageView contenant une image de votre roue de roulette et de les animer.
Pour ce faire, d'abord configurer votre UIImageView par l'initialiser avec votre roue de roulette de l'image. Lorsque vous souhaitez que la roue à tourner, utilisez le code suivant:
en supposant que rotatingImage est votre UIImageView.
Dans cet exemple, la roue allait tourner 5 fois, à chaque rotation de la prise de 0.5 secondes. Les rotations sont divisés en deux parce que de Base de l'Animation va aller au plus proche de l'état, de sorte que le plus vous pouvez faire pivoter quelque chose est une demi-rotation avant l'animation veut tourner dans l'autre sens. Qui est, la pi radian (180 degré) de rotation, voici un demi-cercle, mais si vous avez utilisé (1.5 f * pi) pour votre angle de rotation, il suffit d'aller un quart de cercle. De même, si vous avez utilisé (0.999 f * pi), le cercle serait, tourner dans le sens horaire.
Vous aurez envie de mettre en œuvre l'accélération et la décélération de la roue, et pour ceux d'un CAKeyframeAnimation prendrait la place de la CABasicAnimation dans cet exemple.
C'est assez simple en Cocos2D:
pour faire un tour ou
et
si vous avez besoin de faire tourner en permanence.
N'oubliez pas de assurez-vous que sprite transformAnchor est mis au centre de l'image. Et je suppose que la prochaine question devrait se poser - comment le faire arrêter en douceur 😉
Plus sur les actions: http://lethain.com/entry/2008/oct/03/notes-on-cocos2d-iphone-development (c'est pour une version plus ancienne, elle utilise donc obsolète "faire" au lieu de "runAction')
Vous pouvez faire pivoter une vue, par un certain nombre de radians, indépendamment de si elle est inférieure à une rotation ou plusieurs fois d'un tour complet, sans avoir à partager la rotation en morceaux. Par exemple, le code suivant va tourner un avis, une fois par seconde, pour un nombre de secondes spécifié. Vous pouvez facilement le modifier pour faire tourner une vue par un certain nombre de rotations, ou par un certain nombre de radians.
Il ya un couple de façons dont vous pouvez faire.
Si vous avez l'image-par-image de l'animation de la roue, découvrez AtlasDemo (partie de cocos2d de distribution).
Sinon, jetez un oeil à du Sprite RotateBy: la méthode.