2012-01-19 14 views
6

üzerinde animasyon hareket Cocos2d o Cocos2D belirli bir yolda gider bir hareket animasyon oluşturmak mümkün mü? Ben bir yay veya tam daire üzerinde hareket etmek bir nesne gerekiyorsa Örneğinbir yola

, nasıl yapmalıyım?

Saygılar!

cevap

9

Tabii kullanarak bunu yapabilirsiniz:

ccBezierConfig bezier; 
    bezier.controlPoint_1 = ccp(320,0); // control point 1 
    bezier.controlPoint_2 =ccp(0,0); // control point 2 
    bezier.endPosition = ccp(endPoint.x,endPoint.y) ; 
    id bezierForward = [CCBezierTo actionWithDuration:3 bezier:bezier]; 
    [ball runAction:bezierForward]; 

dönüşlerden herhangi düğümü taşımak için ccBezier kullanabilirsiniz:

Şimdi Animasyon Bölüm:

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"eggAnimation.plist"];   
    spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"eggAnimation.png"]; 
    [gameBackgroundLayer addChild:spriteSheet]; 
    eggAnimFrames = [NSMutableArray array]; 
    for (int i = 1; i <= 10; i++) 
    { 
     [eggAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"%d.png", i]]]; 
    } 
    rotateAnim = [CCAnimation animationWithFrames:eggAnimFrames delay:0.05f]; 
    ball = [CCSprite spriteWithSpriteFrameName:@"1.png"]; 
    ball.position=ccp(160,80); 
    rotateAction =[CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:rotateAnim restoreOriginalFrame:YES]]; 
    [spriteSheet addChild:ball]; 

Referans Bağlantılar: http://www.raywenderlich.com/1271/how-to-use-animations-and-sprite-sheets-in-cocos2d

http://www.math.ubc.ca/~cass/gfx/bezier.html

İlgili konular