【问题标题】:Pause and Resume SKScene暂停和恢复 SKScene
【发布时间】:2015-09-26 02:46:14
【问题描述】:

我正在我的 iPhone 上测试我的游戏,我意识到我的主页按钮有问题。当我暂停游戏并加载另一个应用程序时,游戏不会暂停并在应用程序不在屏幕上时继续。

代码如下:

 class GameScene: SKScene, SKPhysicsContactDelegate{

 var PauseButton = SKSpriteNode(imageNamed: "pause")

 var Resume = SKSpriteNode(imageNamed: "resume1")
}


 init(size: CGSize, won: Bool) {
    super.init(size: size)      
  //pause

    PauseButton.position = CGPointMake(330, 700)
    PauseButton.zPosition = 3;
    PauseButton.size = CGSizeMake(40, 40);
    PauseButton.name = "PauseButton"

    self.addChild(PauseButton)

   //resume 
    Resume = SKSpriteNode(imageNamed: "resume1")
    Resume.position = CGPointMake(520, 450)
    Resume.zPosition = 100
    Resume.setScale(1.3)   

    }

 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    /* Called when a touch begins */

    show = self.scene as SKScene!


    for touch in touches  {


        let Location:CGPoint = touch.locationInNode(self)
        let Node:SKNode = self.nodeAtPoint(Location)



        if(Node == PauseButton){


            self.show.paused = true

            PauseButton.removeFromParent()

            self.addChild(Resume)

        }

        if(Node == Resume){


            Resume.removeFromParent()
            self.show.paused = false

            self.addChild(PauseButton)
        }

当我按下主页按钮时如何让游戏暂停?

【问题讨论】:

    标签: swift sprite-kit swift2 xcode7


    【解决方案1】:

    暂停视图而不是场景。

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        guard let view = view else {
            return
        }
    
        view.paused = !view.paused
    }
    

    【讨论】:

      【解决方案2】:

      当您返回应用时,SpriteKit 会自动恢复。所以你需要:

      第 1 步:创建变量:

      var wasPaused : Bool = false
      

      第 2 步:在暂停/恢复功能中更改它:

      wasPaused = true // pause func
      wasPaused = false // resume fun
      

      第 3 步:更新场景的乐趣:

      override func update(currentTime: CFTimeInterval) {
          if isPausing{
              self.paused = true
              return
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-19
        • 2015-07-28
        • 2014-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多