【问题标题】:pausing spritekit game using appdelegate in ios8在 ios8 中使用 appdelegate 暂停 spritekit 游戏
【发布时间】:2014-09-26 19:26:07
【问题描述】:

我的游戏中有一个暂停菜单,当我按下主页按钮时,我想切换它。当我在我的游戏中时它可以工作,但是当我点击我的主页按钮时,菜单会出现,但游戏不会暂停。

当我重新启动应用程序时,菜单仍然存在,但游戏会自行取消暂停。当您离开并进入应用程序时,spritekit 似乎会自动暂停并自行重新启动游戏。当我在应用程序中时,我可以完全控制它。但是当我退出/进入应用程序时,它的行为就像它喜欢的那样。

有什么建议吗?

func applicationWillResignActive(application: UIApplication!) {
    // get the root viewcontroller
    // toggle my pausemenu method.  pause menu sets skview.paused = true
}

【问题讨论】:

    标签: ios swift sprite-kit appdelegate


    【解决方案1】:

    发送NSNotification 到GameSceneViewController 以暂停SKScene:

    AppDelegate:

    - (void)applicationWillResignActive:(UIApplication *)application
    {    
        // Pause sprite kit scene
        [[NSNotificationCenter defaultCenter] postNotificationName:@"PauseGameScene" object:self];
    }
    

    GameSceneViewController:

    - (void)viewDidLoad {
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(pauseGameScene)
                                                     name:@"PauseGameScene"
                                                   object:nil];
    }
    
    - (void)pauseGameScene {
        if (self.skView.scene) {
            self.skView.paused = self.skView.scene.paused = YES;
        }
    }
    

    【讨论】:

    • 你试过这个代码吗?它不起作用。回到应用程序后游戏会自行重启
    • 如果您的游戏在回到应用程序时自行重启,那么问题肯定出在您的项目架构上,而不是我发布的代码中。它工作得很好。
    • 我尝试制作一个基本的 spritekit 项目并使用此代码。它不适用于当前的 xcode / ios。你用的是旧版本吗?
    • 这里是一个实现此代码的示例项目的链接。当你回到主屏幕并回到应用程序时,你可以看到..游戏不会暂停drive.google.com/file/d/0B4kzFbLmJr19bTlBSG5YUG1zY2s/…
    • 您使用的是哪个版本的 xcode?如果您单击屏幕,看到旋转的精灵,转到主屏幕并返回精灵暂停?你是怎么用相同的代码得到不同的结果的?
    猜你喜欢
    • 2014-12-06
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多