0

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

4

3 回答 3

1

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

于 2013-03-19T08:32:32.110 回答
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。

// 尚未测试,但 //

于 2013-03-19T10:07:28.757 回答
0

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

于 2013-03-19T08:29:18.120 回答