我希望在UIImageView中执行类似于API的操作,在那里您可以提供5个图像,并且在一定的持续时间内,UIImageView将切换这些图像。我希望在CCSprite中执行此操作,但我听到这样做的唯一方法是自定义Node的帧或类似的东西。
有人知道一个简单的方法来实现这样的事情,我提供5个图像,我希望它在4秒内循环使用它们吗?
谢谢!
答案 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)
查看CCAnimation
,CCAnimate
和CCSpriteFrame
类。
CCSpriteFrame
表示一块较大的纹理,称为精灵表。您可以将五张图片放在一张纸上。
CCAnimation
允许您从一系列此类帧中创建动画,并设置动画运行的速度。
CCAnimate
允许您将该动画作为操作运行:
[node runAction:[CCAnimate actionWithAnimation:animationInstance restoreOriginal:NO]];
Zwoptex for creating sprite sheets - 还有一个免费的Flash版本