0

我正在寻找与 UIImageView 中的 API 类似的事情,您可以在其中提供 5 张图像,并且在一定时间内 UIImageView 将切换这些图像。我希望在 CCSprite 中执行此操作,但我听说这样做的唯一方法是自定义节点的框架或类似的东西。

有人知道一种简单的方法来实现这样的事情,我提供 5 张图像,我希望它在 4 秒内循环播放它们吗?

谢谢!

4

3 回答 3

3
    //initialize anitmation
    CCAnimation *anime= [[CCAnimation alloc] initWithName:@"anime" delay:4.0];

    for(int i = 1; i <= 5; i++){
            [anime addFrameWithFilename:[NSString  stringWithFormat:@"frame%d.png", i]];
    }

    id animeAction = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:anime]];

   [self runAction:animeAction];

它需要 5 张图像并在 4.0 周期内为它们制作动画。

----- 编辑 ----- 下面是如何使用新的 Cocos2d Api 1.0.1 做到这一点:

    //initialize anitmation
    CCAnimation *anime= [CCAnimation animation];
    anime.delay = 4.0;

    for(int i = 1; i <= 5; i++){
            [anime addFrameWithFilename:[NSString  stringWithFormat:@"frame%d.png", i]];
    }

    id animeAction = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:anime]];

   [self runAction:animeAction];
于 2011-10-28T23:00:44.650 回答
1

用 5 个不同的图像创建 5 个 Sprite。将它们全部放在同一位置。将 4 个精灵设置为不可见(sprite.visible = NO)。

当你想改变精灵时,你只需要将另一个精灵设置为可见,将当前可见的设置为不可见。您还可以应用 CCFadeTo 等动作来淡出一个精灵,同时淡入另一个精灵。

如果您使用淡入淡出,请确保出于性能原因仍设置可见属性。不透明度为 0 的精灵仍会被渲染,而不可见的精灵则不会。

于 2011-10-28T22:42:42.827 回答
1

看看CCAnimation,CCAnimateCCSpriteFrame类。

CCSpriteFrame代表一块更大的纹理,称为精灵表。您可以将五张图像放在一张纸上。

CCAnimation允许您从这些帧序列中创建动画并设置动画运行的速度。

CCAnimate允许您将该动画作为动作运行:

[node runAction:[CCAnimate actionWithAnimation:animationInstance restoreOriginal:NO]];

.

链接

CCSpriteFrame 类参考

CCAnimation 类参考

CCAnimate 类参考

用于创建精灵表的 Zwoptex - 周围也有免费的 flash 版本

于 2011-10-28T22:58:41.627 回答