【问题标题】:How to animate CCSprite in Cocos2D 3.x?如何在 Cocos2D 3.x 中为 CCSprite 设置动画?
【发布时间】:2014-03-05 22:32:48
【问题描述】:

你知道如何在新的 Cocos2D v3.x 中为CCSprite 设置动画吗?

很多类都改了,老方法好像不行了。

NSMutableArray *animFrames = [NSMutableArray array];
    for(int i = 1; i <= 3; i++) {
        CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Sprite-%d.png",i]];
        [animFrames addObject:frame];
    }
    CCAnimation *animation = [CCAnimation animationWithName:@"run" delay:0.1f frames:animFrames];
    [mySprite runAction:[CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:animation restoreOriginalFrame:NO]]];

有什么想法吗?

谢谢。


额外信息

【问题讨论】:

  • 所有动作类现在都以 CCAction 开头...
  • @LearnCocos2D 有一个简单的例子吗?
  • 类刚刚改名了,不用举例了
  • 耐心点。我没有能力。
  • 只需开始输入 CCActionR..,Xcode 就会自动完成建议。 ;)

标签: ios objective-c cocos2d-iphone


【解决方案1】:

这就是它的工作原理:

    NSMutableArray *animationFrames = [NSMutableArray array];

    for(int i = 1; i <= FRAMES; ++i)
    {
        CCSpriteFrame *spriteFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: [NSString stringWithFormat:@"animationFrame%d.png", i]]; //
    }

    //Create an animation from the set of frames you created earlier
    CCAnimation *animation = [CCAnimation animationWithSpriteFrames: animationFrames delay:delay];

    //Create an action with the animation that can then be assigned to a sprite
    CCActionAnimate *animationAction = [CCActionAnimate actionWithAnimation:animation];

    CCActionRepeatForever *repeatingAnimation = [CCActionRepeatForever actionWithAction:animationAction];
    [self runAction:repeatingAnimation];

【讨论】:

  • 你有没有#importCocos2d 进入你试图执行动画的类?你可以下载这个:github.com/MakeGamesWithUs/CCAnimatedSprite 这是一个有效的实现,应该可以让你找出差异。
  • 如果导入 cocos2d 没有问题,仅供参考,导入 #import "CCAnimation.h" 它对我有用
  • 我在 spriteFrame for 循环中得到 nil 值。有人知道怎么改吗?
  • 你忘了写 [animationFrames addObject:spriteFrame];在循环中
【解决方案2】:

您可以将CCRepeatForever 更改为CCActionRepeatForever。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多