根据我在互联网上所做的研究,我想出了这段代码来暂停和恢复游戏:
-(void)pauseGame:(UIApplication *)application{
[[CCDirector sharedDirector] pause];
//do other actions necessary}
-(void)resumeGame:(UIApplication *)application{
[[CCDirector sharedDirector] resume];
//do other actions}
这工作正常,但我的问题是如果游戏暂停,关闭然后重新打开。通常,如果您暂停游戏,然后关闭它,当您打开它时,一切仍应暂停。经过一些研究,我最终在 Appdelegate 中得到了这段代码:
-(void) applicationDidEnterBackground:(UIApplication*)application{
if( [navController_ visibleViewController] == director_ )
[director_ stopAnimation];
RandomScene *s = [RandomScene node];
if(s.layer.gameStatus == FALSE)
{
[[CCDirector sharedDirector]pause];
[[CCDirector sharedDirector]stopAnimation];
[s.layer stopAllActions];
}}
使用此代码,当我重新打开游戏时,计时器仍会与所有触摸事件一起暂停。但是,我的动画仍在工作,所以我的精灵仍在不应该移动的时候移动。重新打开游戏时如何完全停止动画?