0

アプリケーションデリゲートメソッドにいくつかのロジックを実装しようとしています。現在実行されているシーンの種類を知ることは非常に役立ちます。

[[CCDirector sharedDirector] runningScene]現在実行中のシーンを返します。

[MainMenuLayer scene]それがmyまたは[またはそのようなもののインスタンスであるかどうかを確認するための何らかの比較または関数はありますgameScene scene]か?

の使い方isKindOfClassisEqual、この場合に当てはまるかどうかはよくわかりません。ありがとう

4

2 に答える 2

1

ご想像のとおり、isKindOfClassを使用する必要があります。

if ([[[CCDirector sharedDirector] runningScene] isKindOfClass:[MySceneClass class]]) {
    // Running is scene is of type MySceneClass
}
于 2012-06-11T23:55:29.623 に答える
0

誰よりも長くこれに困惑している。

これにより、CCSceneが返されます。

[[[CCDirector sharedDirector] runningScene]

MySceneClass(私にとってはMenuScene)タイプのそのシーンのインスタンスが必要ですが、それを取得する最も簡単な方法は、タグを付けることです。

// 'scene' is an autorelease object.
CCScene *scene = [CCScene node];

// 'layer' is an autorelease object.
MenuScene *layer = [MenuScene node];
layer.tag = kTagGameLayer;

// add layer as a child to scene
[scene addChild: layer];

// return the scene
return scene;

次に、getChildByTagを使用するようにステートメントを調整します。

if([[[[CCDirector sharedDirector] runningScene] getChildByTag:kTagGameLayer] isKindOfClass:[MenuScene class]]) {
        NSLog(@"current is MenuScene");

    }
于 2013-03-27T00:19:14.490 に答える