0

5 つのフレームで構成されるアニメーションがあるとします。フレーム 1 ~ 4 をそれぞれ 0.5 秒間再生し、次に 5 番目のフレームを 0.1 秒間再生するように設定するにはどうすればよいですか?

4

3 に答える 3

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 に答える
1

アニメーションを手動で再生する。セレクターをスケジュールし、そのデルタ時間を使用して、次のフレームに切り替える必要があるかどうかを確認します。setDisplayFrame: を使用して、スプライトのフレームを変更します。

于 2013-03-19T08:32:32.110 に答える
0

1 つは 0.5 秒、もう 1 つは 0.2 秒の 2 つの別々のアニメーションを使用します。

于 2013-03-19T08:29:18.120 に答える