【问题标题】:show menu when paused a game ins spritekit在 spritekit 中暂停游戏时显示菜单
【发布时间】:2015-06-08 19:46:02
【问题描述】:

我创建了一个类似于塔防的游戏。我可以成功地“暂停”所有游戏。然后我可以用这些代码恢复游戏:

let startLocation = CGPoint(x: location.x, y: location.y);
let myNodeName = self.nodeAtPoint(location)
if(myNodeName.Name == "Start"){
   self.view!.paused = false
}
if(myNodeName.Name == "pause"){
   self.view!.paused = true 
   self.showPausedMenu()
}

在 showPausedMenu 函数中。我用 SKLabelNodes 和 SKSpriteNodes 设计了一个菜单。然而,当我暂停游戏时,所有这些“节点创建”的事情也暂停了。所以什么也没有发生。游戏暂停时如何显示我的菜单?

谢谢。

【问题讨论】:

    标签: swift sprite-kit


    【解决方案1】:

    问题是您正在暂停视图本身。暂停视图会停止所有逻辑。

    如果您需要做一个暂停菜单,您需要添加一个将出现在视图顶部的子视图来管理与用户的所有交互,或者您不需要暂停视图,而是放置视图元素暂停并在其上创建东西。

    【讨论】:

      【解决方案2】:

      最好的方法是使用SKNode 组,该组包含您要暂停的所有对象。

      这样,您可以完全控制要暂停或取消暂停的元素

      【讨论】:

        【解决方案3】:

        我已经解决了我的问题。暂停游戏时,所有屏幕都冻结了,但是游戏场景仍然检测到所有“触摸”,如果它有节点名称,那么我们可以进行一些操作。此时,问题仅显示我的菜单。所以这是我的解决方案。在我暂停游戏之前,我在屏幕上添加了我的菜单。然后暂停游戏。 在现场版本是

        let startLocation = CGPoint(x: location.x, y: location.y);
        let myNodeName = self.nodeAtPoint(location)
        if(myNodeName.Name == "Start"){
           self.view!.paused = false
           self.removePausedMenu()
        }
        if(myNodeName.Name == "pause"){
           self.showPausedMenu()
        }
        

        showPausedMenu 是:

        func showPausedMenu(){
            .....
            .....
            /* Create menu and buttons and labels with NODES. and add to parent as child nodes. */
            self.view!.paused = true
        }
        

        【讨论】:

          猜你喜欢
          • 2016-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-01
          • 2017-05-31
          • 1970-01-01
          • 2016-01-09
          相关资源
          最近更新 更多