2

CAEmitterLayer に一種のライトセーバー アニメーションを作成させようとしています。ある点から光のビームが現れて停止するようにします。私の問題は、アニメーションの開始をスムーズに行うことができないことです。コードを実行するとすぐに、アニメーションなしで数秒が経過したように見えます。

問題の原因を見つけることができるかどうかを確認するために、コードを可能な限り削除しましたが、最も単純な場合でも問題は発生します。これは私が今持っているコードのサンプルで、まだ問題があります:

CAEmitterLayer *emitterLayer = [CAEmitterLayer layer];
emitterLayer.emitterPosition = CGPointMake(10, 10);

CAEmitterCell *emitterCell = [CAEmitterCell emitterCell];
emitterCell.contents = (id)[[UIImage imageNamed:@"LightParticle"] CGImage];

emitterCell.birthRate = 100;
emitterCell.lifetime = 10;
emitterCell.velocity = 10;

emitterLayer.emitterCells = @[emitterCell];
[self.view.layer addSublayer:emitterLayer];

明らかな何かを見逃していたに違いないと思いますが、これを何日も修正できませんでした。

birthRate を 0 に設定するとビームはスムーズに消えますが、任意の数値に戻すと再びアニメーションなしで表示されます。

ご協力ありがとうございました。

4

2 に答える 2

17

最後に、これに対する答えがここに見つかりました: iOS 7 CAEmitterLayer spawningparticles inproperly

これは私が行方不明だったものです:

emitter.beginTime = CACurrentMediaTime();
于 2013-10-21T04:10:04.547 に答える