Cocos2d перемещает анимацию по дорожке - PullRequest
7 голосов
/ 19 января 2012

Возможно ли в Cocos2d создать анимацию движения, которая будет идти по определенному пути?

Например, как мне быть, если мне нужен объект для перемещения по дуге или по кругу?

Привет! * * 1005

1 Ответ

10 голосов
/ 20 января 2012

Конечно, вы можете сделать это, используя:

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

Справочные ссылки: http://www.raywenderlich.com/1271/how-to-use-animations-and-sprite-sheets-in-cocos2d

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...