.animationImages API Cocos 2D?

时间:2011-10-28 22:38:43

标签: ios uiimageview cocos2d-iphone ccsprite

我希望在UIImageView中执行类似于API的操作,在那里您可以提供5个图像,并且在一定的持续时间内,UIImageView将切换这些图像。我希望在CCSprite中执行此操作,但我听到这样做的唯一方法是自定义Node的帧或类似的东西。

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

谢谢!

3 个答案:

答案 0 :(得分: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];

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

查看CCAnimationCCAnimateCCSpriteFrame类。

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

CCAnimation允许您从一系列此类帧中创建动画,并设置动画运行的速度

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

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

链接

CCSpriteFrame class reference

CCAnimation class reference

CCAnimate class reference

Zwoptex for creating sprite sheets - 还有一个免费的Flash版本