2012-06-13 4 views
8

Vorrei sapere cosa devo usare al posto diCocos2d - animationwithframes: Ritardo: deprecati

animationWithFrames:delay: 

e

actionWithAnimation:restoreOriginalFrame: 

in quanto danno un avvertimento che che sono stati deprecati.

+2

controlla i file CCDeprecated.h e .m per sapere come scrivere il codice deprecato – LearnCocos2D

risposta

12

Cocos2d 2.0 utilizza

CCAnimation

+(id) animationWithSpriteFrames:(NSArray*)frames delay:(float)delay 

CCAnimate

+(id) actionWithAnimation: (CCAnimation*)anim 

Documenti:

http://www.cocos2d-iphone.org/api-ref/2.0.0/interface_c_c_animation.html

http://www.cocos2d-iphone.org/api-ref/2.0.0/interface_c_c_animate.html

+0

Buona risposta, ma manca un dettaglio della seconda metà della domanda dell'OP. Nello specifico, è necessario anche impostare la proprietà 'restoreOriginalFrame' dell'animazione in modo che corrisponda a quanto precedentemente specificato nella versione deprecata. Guarda la risposta di Julio qui sotto. (A proposito, i link doc non funzionano più.) – Dalmazio

11

L'unica modifica che è necessario fare è utilizzare la nuova proprietà: restoreOriginalFrame.

Rimuovere restoreOriginalFrame dal costruttore, poi, in una nuova linea, impostare la proprietà:

animation.restoreOriginalFrame = NO; 

Questo è tutto!

+0

Questa è la risposta giusta per la seconda parte della domanda dell'OP. L'impostazione della proprietà 'restoreOriginalFrame' dell'animazione in modo che corrisponda a quanto precedentemente specificato è un dettaglio importante a cui manca la risposta accettata. – Dalmazio

0
CCAnimation *sampleAnim = [CCAnimation animationWithAnimationFrames: 
            sampleAnimFrames delayPerUnit:0.2f loops:7]; 
0

Ho lo stesso problema nel mio progetto che uso.

CCSprite *image = [CCSprite spriteWithSpriteFrameName:@"a0001.png"]; 
     image.position = ccp(s.width/2,s.height/2); 
     [self addChild:image]; 
     image.tag = 1; 

     NSMutableArray *frames = [[NSMutableArray alloc] init]; 
     for (int i = 1; i <= 10; i++) { 
      NSString *frameName = [NSString stringWithFormat:@"a%04i.png",i]; 
      [frames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:frameName]]; 
     } 
     CCAnimation *ani = [CCAnimation animationWithSpriteFrames:frames delay:1.0f/8.0f]; 
     [image runAction:[CCAnimate actionWithAnimation:ani]]; 

Questo funziona per me.