Cocos2d路径移动动画

7

Cocos2d中是否可以创建按照特定路径移动的动画?

例如,如果我需要让一个对象在弧线或完整圆圈上移动,应该怎么做呢?

谢谢!

1个回答

10

你可以使用以下方法实现:

    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];

你可以使用ccBezier在曲线上移动任何节点:

现在是动画部分:

    [[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];

参考链接: 如何在cocos2d中使用动画和精灵表

贝塞尔曲线实现的原理


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接