2013-03-19 32 views

回答

1

我没有尝试这样做呢,(科科斯2.X新的),但是:

CCAnimation *anim = [CCAnimation animation]; 
NSMutableArray *frames = [NSMutableArray array]; 
CCSpriteFrame *sfr1 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"name1"]; 
CCAnimationFrame *af1 = [[[CCAnimationFrame alloc] initWithSpriteFrame:sfr1 delayUnits:5 userInfo:nil] autorelease]; 
[frames addObject:af1]; 

// tru sfr4 and finally 

CCSpriteFrame *sfr5 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"name5"]; 
CCAnimationFrame *af5 = [[[CCAnimationFrame alloc] initWithSpriteFrame:sfr5 delayUnits:1 userInfo:nil] autorelease]; 
[frames addObject:af5]; 

anim = [CCAnimation animationWithAnimationFrames:frames delayPerUnit:.1 loops:1]; 

这应该给你你正在寻找的效果。

ps:userInfo是一个NSDictionary。播放动画时,您可以注册名为CCAnimationFrameDisplayedNotification的通知,并逐帧接收userInfo。

//未测试,但//

+0

哦,所以* *表示它应该如何工作?嗯,现在我记得有一些关于个别帧延迟的动画系统/文件格式的讨论。 – LearnCocos2D 2013-03-19 10:32:25

+0

是的,以及使用通知中心的每帧已久的回调。在我目前的应用程序中没有真正的用处,但不能等待这个轮胎的摇晃。 – YvesLeBorg 2013-03-19 13:07:02

+1

终于试了这个。它似乎工作。我最终将其用于仅包含3帧的另一个动画。前两个帧的比例为0.1,最后一个为0,因为我希望在最后一帧显示时立即做出反应。我一定会在以后使用它。 – Jonny 2013-03-21 09:56:53

0

使用两个单独的动画,一个0.5秒,一个0.2秒。

1

通过手动播放动画。安排选择器,使用其增量时间来查看是否需要切换到下一帧。使用setDisplayFrame:更改精灵的框架。