【问题标题】:iOS Swift - How do I respond to a banner notification?iOS Swift - 如何响应横幅通知?
【发布时间】:2015-12-25 18:06:38
【问题描述】:

我的 Sprite Kit 游戏无法响应横幅通知。当用户收到 alert 通知时,由于applicationWillResignActive 不使用 banner 通知调用,游戏会按预期暂停。当有横幅通知时,游戏中的弹丸会直接穿过墙壁,而不是在与(厚)墙壁接触后从其父级身上移除。

我已搜索过,但找不到任何可用于在用户收到横幅通知时暂停游戏的功能。有人知道我可以使用的功能吗?

【问题讨论】:

    标签: ios swift notifications sprite-kit


    【解决方案1】:

    基本上你有两个选择

    在你的 ViewController 中暂停 SKView

    self.view?.paused = true
    

    这里的问题是它会暂停所有内容,这使得在之后添加 pauseMenus 或其他节点有点棘手。

    更好的方法是创建一个worldNode(全局)

    let worldNode = SKNode()
    

    将其添加到场景中

    addChild(worldNode)
    

    将所有需要暂停的精灵添加到该节点

     worldNode.addChild(yourSprite)
    

    最后,当你想暂停游戏时,你调用

    worldNode.paused = true
    self.physicsWorld.speed = 0 // call this as well when paused and reset to 1 when resuming
    

    这样您仍然可以在游戏暂停时添加 pauseMenu 节点/精灵、标签等。

    要在收到通知时执行此操作,我相信您需要在您的应用委托中使用委托方法,例如这个

    application:didReceiveLocalNotification
    

    你可以在这里阅读更多

    https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/index.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:didReceiveLocalNotification:

    【讨论】:

    • 我知道,当我收到警报通知时,我已经暂停了游戏。我想在收到横幅通知时暂停游戏。
    • 谢谢。我试过 application:didReceiveLocalNotification 但它不适用于横幅 =/
    • Himhh,比可能阅读上面的链接。这取决于你有什么通知。也许其他一些委托方法
    • 我刚刚又读了一堆,但还是没有运气。也许我是盲人,但我真的在文档中找不到任何东西。
    • 这太糟糕了。我认为上面的委托是你所需要的。
    猜你喜欢
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多