2009-03-09 7 views
1

J'essaye d'animer un sprite. Le site web de cocos2d a l'air si facile mais chaque fois que j'essaie, j'ai des erreurs. J'ai réussi à télécharger du code pour le faire fonctionner mais une animation de sprite prend 6 fichiers. J'ai un personnage qui doit marcher à droite et à gauche, sauter, grimper et tomber. Cela signifie que je regarde 35 fichiers. ne peut-il pas être rationalisé un peu? Cela semble bien plus difficile que ça ne devrait l'être.Comment animer dans Cocos2d?

Merci, Josh

+0

Cependant, thats la façon de le faire, vous devez créer sprites pour chaque image de l'animation. Pour la mise à l'échelle, la rotation et le panoramique, Cocos2d possède des méthodes élégantes comme le mentionne Genericrich dans sa réponse ci-dessous. –

Répondre

3

Cocos est grande. Vous avez juste besoin de passer du temps avec le projet de démonstration, de traîner sur le forum et de continuer.

vous animez un sprite comme ceci:

id action = [Sequence actions: 
      [ScaleTo actionWithDuration:.3 scale:0.7f], 
      [ScaleTo actionWithDuration:.3 scale:1.0f], 
      nil]; 

[[self getByTag:FOO] do:action]; 

Cela provoque l'image-objet avec la balise FOO à réduire à 70 pour cent en .3 secondes, puis de nouveau jusqu'à 100 pour cent en .3 secondes.

animations beaucoup plus complexes sont possibles, tout simplement obtenir les bases vers le bas et le monde ya être huîtres, au moins jusqu'à faire des choses voler autour de l'écran, ce qui est.

+0

Je pense par l'animation qu'il veut dire par exemple. comment afficher une séquence d'images pour créer une vidéo fluide, par exemple une personne qui marche? –

0

Cocoa With Love ont une courte série sur la rédaction d'un est venu à l'aide CoreAnimation, il serait peut-être utile?

Cocoa ne prendre beaucoup de temps pour s'y habituer, et ne semble vraiment trop alambiquée, mais quand vous comparez à .. bien, la plupart des autres boîtes à outils de l'interface graphique, je l'ai utilisé, il semble soudain très élégant et simple. Le problème avec l'exemple de code, et la plupart des tutoriels (y compris celui que je lié à, quoique à un degré légèrement moindre) est qu'ils ne vous montrent l'application finie - il ne montre pas les incréments. Il n'y a pas de "J'ai une toile vide", puis "J'ai dessiné un cercle", puis "J'ai animé le cercle".

Essayez de faire une nouvelle application, regarder à travers l'exemple de code/projet IB/tutorials/documentation pour le bit qui initialise la toile chose. Ensuite, recherchez le code qui ajoute une forme simple. Ensuite, regardez le code pour animer le code (réponse Genericrich, par exemple)

1
UIImageView* headBandAnimation = [[UIImageView alloc] initWithFrame:CGRectMake(25, 205, 100, 50)]; 
    headBandAnimation.animationImages = [NSArray arrayWithObjects:  
            [UIImage imageNamed:@"band1.png"], 
            [UIImage imageNamed:@"band2.png"], 
            [UIImage imageNamed:@"band3.png"], 
            [UIImage imageNamed:@"band4.png"], nil]; 
    headBandAnimation.animationDuration = 0.5; 
    headBandAnimation.animationRepeatCount = 0; 
    [headBandAnimation startAnimating]; 
    [self.view addSubview:headBandAnimation]; 

est de savoir comment faire de l'animation sans cocos2d si vous souhaitez aller dans cette voie.

0

je sais que ce fil est beaucoup plus ancienne, mais pour référence future this est l'article qui semble mieux adaptée à cette question.

Il s'agit de l'outil TexturePacker qui génère un PLIST et un PNG qui répondent à nos besoins.