0

私はこのコードを書きました。

 CCSpriteFrame *starParticleFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:spriteName];
            CCParticleSnow *emitter = [[CCParticleSnow alloc] initWithTotalParticles:8];

            [emitter setTexture:[starParticleFrame texture] withRect:[starParticleFrame rect]];
            emitter.position = ADJUST_XY(theScreenSize.width/2, 3*theScreenSize.height/4);
            emitter.scale = HD_PIXELS(1.5);

            emitter.speed = 20 + arc4random() %20;
            [emitter setDuration:kCCParticleDurationInfinity];

            //[emitter setGravity:CGPointMake(0, -150)];
            [self addChild: emitter z:-1];

できます。しかし、問題は、雪が一度だけ発火し、継続的ではないことです。(この場合、8つのパーティクルだけが出てきました。それだけです)。

ただし、コードの2行目をに交換すると

CCParticleSnow *emitter = [CCParticleSnow node];

その後、パーティクルシステムは継続的にループすることができます。私はドキュメントを読み、これについてグーグルで検索しましたが、役に立ちませんでした。最後の試みは、その期間をkCCParticleDurationInfinityに設定することでした。しかし、まだ機能していません。

お願い助けて。

4

1 に答える 1

1

エミッタを8パーティクルに制限します。最初の8つがなくなった後にのみ新しいパーティクルをスポーンします。

于 2013-02-22T19:19:31.707 に答える