2010-07-06 35 views

Respuesta

2

Puede usar una acción simple [CCScaleTo ..] o si desea crear su propio "efecto" puede avanzar CCFiniteTimeAction. Yo preferiría la primera:

CCSprite * sprite = ...; // create the sprite. 
sprite.anchorPoint = ccp(0.5, 0.5); center the pivot 
id myAction = [CCRepeatForEver actionWithActions:[CCScaleTo actionWithDuration:0.5 scaleX:2.0 ScaleY:2.0],[CCScaleTo actionWithDuration:0.5 scaleX:0.5 ScaleY:0.5], nil]; 
[sprite runAction:myAction]; 

uso CCEase para hacer la animación no lineal

id myAction = [CCRepeatForEver actionWithActions:[CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:0.5 scaleX:2.0 ScaleY:2.0] rate:2.0],[CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:0.5 scaleX:0.5 ScaleY:0.5] rate:2.0], nil]; 

este post puede contener errores. pero espero que entiendas la forma de llegar a la meta.

14

Como la publicación anterior contiene errores de sintaxis. Para ser más precisos, publico código de trabajo:

CCSprite * sprite = ...; // create the sprite. 
id scaleUpAction = [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:1 scaleX:1.0 scaleY:1.0] rate:2.0]; 
id scaleDownAction = [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:0.5 scaleX:0.8 scaleY:0.8] rate:2.0]; 
CCSequence *scaleSeq = [CCSequence actions:scaleUpAction, scaleDownAction, nil]; 
[sprite runAction:[CCRepeatForever actionWithAction:scaleSeq]]; 
+0

cómo esta animación solo una vez? – Swastik

Cuestiones relacionadas