在SpriteKit游戏中暂停

时间:2015-09-14 14:08:09

标签: ios swift sprite-kit

func pause() {
    pausedSpeed = self.speed
    self.speed = 0
    backgroundMusicPlayer.pause()
    worldNode.alpha = 0.7

    resumeButton = SKShapeNode(rectOfSize: CGSize(width: 100, height: 50))
    resumeButton.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2 - 50)
    resumeButton.physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: 100, height: 50))
    resumeButton.name = resumeButtonName

    pauseLabel = SKLabelNode(text: "PAUSED")
    pauseLabel.fontSize = 100
    pauseLabel.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2 + 100)
    pauseLabel.fontColor = UIColor.blackColor()

    worldNode.addChild(resumeButton)
    worldNode.addChild(pauseLabel)
}

即使我认为我将self.speed设置为0,节点仍然继续移动。有什么想法可能会发生这种情况吗?

1 个答案:

答案 0 :(得分:0)

请勿更改节点的速度。只需更改node.paused = true

即可

在您的情况下,您应该在一个SKNode上定义所有控制按钮,并在另一个SKNode上声明所有游戏元素。在这种情况下,如果您想暂停游戏,只需暂停第二次SKNode