1

cocos2dでゲームを実装しようとしています。このチュートリアルの指示に従ってアークを有効にしました。 http://www.learn-cocos2d.com/2012/04/enabling-arc-cocos2d-project-howto-stepbystep-tutorialguide/

ゲーム シーンをメイン メニュー シーンに置き換えた後、奇妙な動作に気付きましたが、問題がわかりません。交換後、新しいシーンが表示され、期待どおりに動作しますが、ゲーム シーン (古いシーン) はまだタッチに反応します。シーンを入れ替える時は、古いシーンは完全に取り除かなければならないと思っていたのですが、新しいシーンの下に生き続けています。

関連するコードの一部は次のとおりです。

シングルトン:

+(void) go: (CCLayer *) layer{
    CCDirector *director = [CCDirector sharedDirector];
    CCScene *newScene = [Singelton wrap:layer];
    if ([director runningScene]) {
        [director replaceScene: [CCTransitionFlipX transitionWithDuration:0.5 scene:newScene]];
    } else {
        [director pushScene:newScene];
    }
}

+(CCScene *) wrap: (CCLayer *) layer{
    CCScene *newScene = [CCScene node];
    [newScene addChild: layer];
    return newScene;
}

+(void) mainMenu
{
    CCLayer *layer = [MainMenu node];
    [Singleton go:layer];
}

メインメニューシーンに移動する必要があるときは、次のようにシングルトンクラスを呼び出します

[Singleton mainMenu]

メニュー シーンが表示された後、ゲーム シーンを強制終了するにはどうすればよいですか?

ご協力いただきありがとうございます。

4

1 に答える 1

2

シングルトンは何をしますか?シーンを置き換えている間/後に、シーン/レイヤーまたは他のノードの参照を保持していることが原因である可能性があります。

于 2012-08-22T08:10:09.433 に答える