5

cocos2D では、現在、次のように初期化された非常に単純なパーティクル エミッタがあります。

    turnEmitter = [[CCParticleFlower alloc] init];
    turnEmitter.texture = [[CCTextureCache sharedTextureCache] addImage:@"Pocket.png"];
    [self addChild:turnEmitter z:1];
    turnEmitter.scale = 0.7f;
    turnEmitter.positionType = kCCPositionTypeFree;

ゲームプレイレイヤーに直接追加するだけです。

このエミッターは、次のように画面上でスプライトを追跡します (更新メソッドで発生します)。

    turnEmitter.position = turnEmblem.position;

ここでの問題は、放出されたパーティクルが単に放出された位置にとどまるのではなく、エミッタの後ろに残されたパーティクルの尾がエミッタとともに移動することです。

私がやりたいことは、パーティクルがスポーンされた後、エミッターにまったく追従しないようにすることです。残念ながら、そうする方法を見つけることができませんでした。

上記のコードからわかるように、私はすでに周りを検索しており、エミッターのpositionTypeプロパティを変更することを提案する人を見つけましたが、すべての可能性を試しましたが、問題は解決しません。

これが何であるかについて誰かが何か考えを持っていますか?

4

1 に答える 1

8

「emitterMode」も「kCCPositionTypeFree」に変更してみてください。CCNodeの子としてエミッターを持っていた同様の問題がありました。CCNode は回転していましたが、パーティクルとエミッターは回転していませんでした。同じように、回転の錯覚が台無しになったので、それはばかげて見えました。エミッターで次のように設定する必要があります。

emitter.emitterMode = kCCPositionTypeRelative;
emitter.positionType = kCCPositionTypeRelative;
于 2012-06-07T19:16:08.523 に答える