2012-02-21 84 views
0

我有一个切换菜单,当它被按下时,它们在“暂停”和“恢复”之间切换,这也暂停和恢复整个游戏。这意味着在播放时,菜单将显示为“暂停”(点击此处暂停),暂停时菜单将显示为“恢复”(点击此处继续)。如何在cocos2d中从后台恢复游戏后保持暂停状态?

这是问题所在,如果我在暂停游戏后点击主页按钮,然后回到主界面,它会自行恢复,暂停菜单显示为“恢复”。这对我来说没有意义。我想要的最好方式是在进入后台并从后台恢复时暂停游戏。我看看下面的方法,但他们没有真正的工作:

-(void)applicationWillResignActive:(UIApplication *)application{ 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application{ 
} 

-(void)applicationWillEnterBackground:(UIApplication*)application{ 
} 

-(void)applicationDidEnterBackground:(UIApplication *)application { 
} 

我甚至只是把CCLOG在所有的这些方法,但没有被调用。在使用这些方法之前,我是否需要放置/声明?

对不起,阅读有点太长。希望您能够帮助我。谢谢。

+0

你应该考虑标记你的问题是正确的,因为它鼓励SO用户回答你的问题。 – TigerCoding 2012-02-21 09:35:10

+0

http://stackoverflow.com/questions/8538323/how-to-actually-pause-a-cocos2d-scheduled-selector – SHANib 2012-02-21 09:40:28

回答

0

我不知道为什么,但为了我的经验(不是cocos2d),如果想要应用这些方法,没有额外的实现。或许,你应该试试看这个。

link 1 & link 2

+0

感谢答复人我得到这个[链接] [1] 和这个链接解决了我的问题感谢您通过帮助 [1]:http://stackoverflow.com/questions/7214939/resume-game-cocos2d – 2012-02-21 11:23:42

0
-(void)applicationWillResignActive:(UIApplication *)application{ 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application{ 
} 

你需要定制你的cocos2d CCDIRECTOR类。并获取现在的显示图层。然后激活它暂停或恢复功能。所有这些都需要一些协议。

0

当iOS在后台强制您的应用程序或恢复您的应用程序的执行时,即当外部事件导致您的应用程序转到后台或从其返回时收到的信号时,会调用这些方法。你不应该直接调用它们。除非您将关系明确化,否则与您的“用户创建”菜单(如简历/暂停菜单)没有真正的关系。

那么,在下面的方法:

- (void)applicationWillResignActive:(UIApplication *)application { 
    NSLog(@"<%@>:applicationWillResignActive - received signal, pausing sharedDirector.",[self class]); 

    // here : place your code for forcing your menu in the 'Resume' state 
    // i am assuming some kind of change in a button, and 
    // a state variable of your own that define and control 
    // what it means to be 'paused' from your applications point of 
    // view 

    // then force the director to pause (animations, scheduling, touch, etc ...) 

    [[CCDirector sharedDirector] pause]; 
} 

后,当iOS的手你回控制放置在于地面您的应用程序运行的应用程序:

- (void)applicationDidBecomeActive:(UIApplication *)application { 
    NSLog(@"<%@>:applicationDidBecomeActive - received signal, resuming sharedDirector.",[self class]); 

    [[CCDirector sharedDirector] resume]; 
} 

你并不真正需要除了重新启动CCDirector之外,在这里做任何事情都很花哨,因为你的菜单处于“恢复”状态,保证。当用户按下简历时,您将再次开始您的游戏并将菜单置于“暂停”状态。

+0

oups,只是看到你的评论说你已经解决了你的问题。作为一个方面说明,你应该接受答案,自己回答,以便你可以接受自己的答案。这样,问题将被标记为已回答,并且不会像我一样吸引更多的答案:) – YvesLeBorg 2012-02-21 14:41:53