我正在尝试为游戏添加暂停功能。到目前为止,在pause
上运行[CCDirector sharedDirector]
已经足够好了,当我运行pauseGame
方法时(包含BOOL来判断游戏是否暂停等)
但是,我注意到如果我回到设备上的主屏幕,我的应用程序代理将自动在pause
上运行resume
和sharedDirector
。
理想情况下,我想访问我的活动场景/图层,以便我可以运行自己的暂停方法。
我怎样才能:1)检查当前场景是否是我的游戏场景 2)访问游戏场景的暂停属性,并在其上运行pauseGame方法?
任何帮助表示赞赏。感谢
答案 0 :(得分:0)
正在运行的场景为[CCDirector sharedDirector].runningScene
如果你打电话给[scene 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];
}
}
答案 1 :(得分:0)
我使用不同的方法暂停游戏。
我通常有游戏场景的游戏场景。为了暂停游戏,我添加了一个新图层(覆盖整个屏幕),当我暂停游戏时,我显示了这一层。这样你就可以停止触摸游戏层的事件,并在恢复游戏时恢复它们(并从场景中删除暂停层)