我想在我的應用程序委託方法中實現一些邏輯。知道當前正在運行哪種場景會非常有幫助。如何判斷什麼樣的課程/場景正在運行?
3210返回當前正在運行的場景。
是否有某種比較或函數來檢查它是否是我的[MainMenuLayer scene]
或者其他類似的實例?
我不太確定如何使用isKindOfClass
或isEqual
,或者如果它們適用於這種情況。謝謝
我想在我的應用程序委託方法中實現一些邏輯。知道當前正在運行哪種場景會非常有幫助。如何判斷什麼樣的課程/場景正在運行?
3210返回當前正在運行的場景。
是否有某種比較或函數來檢查它是否是我的[MainMenuLayer scene]
或者其他類似的實例?
我不太確定如何使用isKindOfClass
或isEqual
,或者如果它們適用於這種情況。謝謝
在這個問題上比任何人都要難過。
這會返回一個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");
}
正如你所假設的,你必須使用isKindOfClass。
if ([[[CCDirector sharedDirector] runningScene] isKindOfClass:[MySceneClass class]]) {
// Running is scene is of type MySceneClass
}
嗨,這似乎並沒有工作。我嘗試使用NSLog打印,當我的[MainMenuScene類]加載,但它不顯示。我也試過[MainMenuScene節點]。有任何想法嗎?謝謝 – user339946
發佈您的代碼。鼓手B的答案必須按你的需要工作。 – Morion