0

パーティクルを b2body オブジェクトに追従させる次のコードがあります。

-(void)updateMagicFruitParticlePosition:(ccTime)dt{

    if (!gameManager.isPaused) {

         magicFruitParticle.position = especialObject.ccPosition;
    }
    else
       [self unschedule:_cmd];
}

コードは機能しますが、一時停止ボタンを押してプレーヤーがゲームを再起動すると、クラッシュします。理論的には、ボタンが押されると停止するはずですが、メソッドがスケジュールされていない場合でも、たまたま更新の途中です。

以下のコードは、一時停止ボタンが押されたときに発生するものです。

-(void)pauseGame:(id)sender{

    if (!gameManager.isPaused ) {

        gameManager.isPaused = YES;

        [gameManager pauseAllSoundEffects];
        [gameManager pauseBackgroundMusic];
        [[CCDirector sharedDirector] pause];

        pauseLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 125) width:screenSize.width height:screenSize.height];
        pauseLayer.position = CGPointZero;
        [self addChild:pauseLayer z:kSecondLayer];

        backgroundPauseA = [CCSprite spriteWithSpriteFrameName:@"BackgroundPauseA"];
        backgroundPauseA.position = ccp(screenSize.width /2, screenSize.height /2);
        [self addChild:backgroundPauseA z:kSuperiorLayer];

        backgroundPauseB = [CCSprite spriteWithSpriteFrameName:@"BackgroundPauseB"];
        backgroundPauseB.position = ccp(screenSize.width /2, screenSize.height /2);
        [self addChild:backgroundPauseB z:kSuperiorLayer];

        [self pauseMenu]; 
    }
}

パーティクル エフェクトをオブジェクトまたはスプライトに追従させる他の方法はありますか? または、どうすれば動作するように修正できますか?

どんな助けでも大歓迎です!

ありがとう!

4

0 に答える 0