2012-06-11 67 views
0

我試圖爲我的遊戲添加一個暫停功能。到目前爲止,在[CCDirector sharedDirector]運行pause時通過我的pauseGame方法(它集成了一個布爾說,如果遊戲暫停,等)Cocos2d訪問場景屬性和方法

但是運行已經足夠好了,我注意到,如果我回到主屏幕上我設備,我的應用程序代理將自動在sharedDirector上運行pauseresume

理想情況下,我想訪問我的活動場景/圖層,所以我可以運行自己的暫停方法。我如何:1)檢查當前場景是否爲我的遊戲場景 2)訪問遊戲場景的暫停屬性,並在其上運行pauseGame方法?

任何幫助表示讚賞。由於

回答

0

的運行場景[CCDirector sharedDirector].runningScene

如果你調用[場景pauseSchedulerAndActions]在當前場景中,當在主屏幕上來回移動時,這將不會被恢復。

如果需要暫停所有節點在層次結構中,這裏是延長CCNode

-(void)recursivePauseSchedulerAndActions { 
    [self pauseSchedulerAndActions]; 
    CCNode *child; 
    CCARRAY_FOREACH(children_, child) { 
     [child recursivePauseSchedulerAndActions]; 
    } 
} 
-(void)recursiveResumeSchedulerAndActions { 
    [self resumeSchedulerAndActions]; 
    CCNode *child; 
    CCARRAY_FOREACH(children_, child) { 
     [child recursiveResumeSchedulerAndActions]; 
    } 
} 
+0

嗨,感謝您的建議。我與暫停或pauseSchedulerWithActions有關的問題是我在實現觸摸的屏幕上有精靈。所以當遊戲暫停時,你仍然可以拖動它們。這就是爲什麼我嘗試在遊戲中使用我自己的暫停方法,這會消除觸摸淡入淡出並重新添加它們。這就是爲什麼我喜歡在課堂上使用我自己的方法。有任何想法嗎?謝謝 – user339946

0

我用不同的方法用於暫停遊戲的方法。

我通常有遊戲層的遊戲場景。要暫停遊戲,我添加一個新層(覆蓋整個屏幕),當我暫停遊戲時,顯示該層。這樣,您可以停止觸摸遊戲層的事件並在恢復遊戲時恢復它們(並從場景中移除暫停層)