CCAnimation,如何设置各帧的帧速率

时间:2013-03-19 08:07:17

标签: cocos2d-iphone

假设我有一个由五帧组成的动画。 如何将帧1-4设置为每次播放0.5秒,然后将第5帧设置为0.1秒?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我还没有尝试过,(cocos 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。

//尚未测试,但//

答案 2 :(得分:0)

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