1

LevelHelper を使用してレベルを構築し、レベル内にいくつかのパーティクル (動的に初期化された CCParticleSystemQuad) を追加しています。世界を移動するまで、すべて正常に動作します (これは、カメラでプレーヤーを追跡する Box2D で動的に描画される世界です)。ワールドを移動すると、継続的に放出されている新しく追加されたパーティクルが正しい位置に描画されますが、その後のパーティクル アニメーションでは、パーティクルはグローバル ワールド/スクリーン位置に対して相対的に描画されるように見えます。これにより、まったく非現実的に見える奇妙な「トリッピー」効果が得られます。パーティクルはワールド内で再描画/リフレッシュする必要があります

LevelHelperLoader * lh = gameLayer.lh;
LHLayer * layer = [lh layerWithUniqueName:@"MAIN_LAYER"];

NSArray * array = [lh spritesWithTag:WORTEL];
CCParticleSystemQuad * particle;
CGPoint position;
for (LHSprite * sprite in array) {
    particle = [CCParticleSystemQuad particleWithFile:@"DirtParticles.plist"];
    [layer addChild:particle z:0];
    position = sprite.position;
    position.y += sprite.contentSize.height * 0.5f;
    [particle setPosition:position];
    [particle resetSystem];
}

私が間違っているかもしれないことを誰かが知っていますか?

4

1 に答える 1

3

パーティクルの位置タイプを変更してみてください:

particle.positionType = kCCPositionTypeFree;

代替は kCCPositionTypeRelative と kCCPositionTypeGrouped です。どれがあなたのシナリオに最も適しているかを確認するには、すべてを試してみる必要があるかもしれません.「無料」または「相対」のいずれかだと思います.

于 2012-10-08T15:03:46.957 に答える