Cocos2d访问场景属性和方法

时间:2012-06-11 18:25:58

标签: iphone ios cocos2d-iphone box2d-iphone

我正在尝试为游戏添加暂停功能。到目前为止,在pause上运行[CCDirector sharedDirector]已经足够好了,当我运行pauseGame方法时(包含BOOL来判断游戏是否暂停等)

但是,我注意到如果我回到设备上的主屏幕,我的应用程序代理将自动在pause上运行resumesharedDirector

理想情况下,我想访问我的活动场景/图层,以便我可以运行自己的暂停方法。

我怎样才能:1)检查当前场景是否是我的游戏场景 2)访问游戏场景的暂停属性,并在其上运行pauseGame方法?

任何帮助表示赞赏。感谢

2 个答案:

答案 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)

我使用不同的方法暂停游戏。

我通常有游戏场景的游戏场景。为了暂停游戏,我添加了一个新图层(覆盖整个屏幕),当我暂停游戏时,我显示了这一层。这样你就可以停止触摸游戏层的事件,并在恢复游戏时恢复它们(并从场景中删除暂停层)