点击iAds时暂停SpriteKit场景

5

我正在开发一个SpriteKit项目,但是我在尝试在iAd被点击时暂停游戏,在iAd关闭后恢复游戏时遇到了困难。主要问题在于如何从ViewController中暂停场景,我知道如果我想从Scene.m暂停场景,我应该使用以下代码:

    self.scene.view.paused = YES;

然而,这段代码在ViewController中无法运行。

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
{
//pause game
}

- (void)bannerViewActionDidFinish:(ADBannerView *)banner
{
//unpause game
}

我知道我想在上面的部分暂停游戏,但我找不到了解如何执行此操作的资源。任何帮助都将不胜感激,谢谢。


scene对象是在哪里创建的? - Rafał Sroka
在测试中它运行良好,但是在实际广告中,有时广告会将应用程序发送到后台,导致"bannerViewActionDidFinish"没有调用,应用程序将被卡在暂停模式。我可以通过在应用程序委托中取消暂停应用程序来解决这个问题。 - nick
1个回答

5
如果你有一个呈现场景的SKView,你可以像这样从它的ViewController中调用pause: Objective-C:
SKView *skView = (SKView *)self.view;
skView.scene.paused = YES;

Swift

let skView: SKView = self.view as! SKView
skView.scene.paused = true

如果有人想知道,代码如下:let skView = self.view as SKView, skView.paused = false。适用于Swift。 - Egghead

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接