2012-06-11 34 views
0

我想在我的應用程序委託方法中實現一些邏輯。知道當前正在運行哪種場景會非常有幫助。如何判斷什麼樣的課程/場景正在運行?

​​3210返回當前正在運行的場景。

是否有某種比較或函數來檢查它是否是我的[MainMenuLayer scene]或者其他類似的實例?

我不太確定如何使用isKindOfClassisEqual,或者如果它們適用於這種情況。謝謝

回答

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"); 

    } 
1

正如你所假設的,你必須使用isKindOfClass。

if ([[[CCDirector sharedDirector] runningScene] isKindOfClass:[MySceneClass class]]) { 
    // Running is scene is of type MySceneClass 
} 
+0

嗨,這似乎並沒有工作。我嘗試使用NSLog打印,當我的[MainMenuScene類]加載,但它不顯示。我也試過[MainMenuScene節點]。有任何想法嗎?謝謝 – user339946

+0

發佈您的代碼。鼓手B的答案必須按你的需要工作。 – Morion

相關問題