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