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