如何在SpriteKit和Swift中重启游戏

时间:2015-08-10 06:00:07

标签: swift sprite-kit restart skscene

我是Swift和SpriteKit的新手,因为我正在尝试制作一个样本游戏。直到结束场景,我能够正确构建,但当我附加结束场景开始场景时,游戏崩溃,我不知道。我收到了两种不同类型的错误:

  1. Swift的函数签名特化。(_ fatalErrorMessage(Swift.StaticString,Swift.StaticString,Swift.StaticString,Swift.UInt) - >())。(闭包#2)和Theard 1:EXE - Breakpoint

  2. ignoresilbingsorder:unwrapped nil optionals。

  3. 示例代码:

    if nodeAtPoint(location) == playButton {
        var scene = playScene(size: self.size)
        var skView = self.view as SKView!
        skView.ignoresSiblingOrder = true
        scene.scaleMode = .ResizeFill
        scene.size = skView.bounds.size
        skView.presentScene(scene)
    } - this is gamescene
    

    playcene:

    var scene = EndScene(size: self.size)
    var skView = self.view as SKView!
    skView.ignoresSiblingOrder = true
    skView.presentScene(scene)
    

    EndScene:

    Restartbtn = UIButton(frame: CGRect(x: 0, y: 0, width: view.frame.size.width / 4, height: 80))
    Restartbtn.frame.origin = CGPoint(x: view.frame.size.width / 2.9, y: view.frame.size.height / 3.8)
    
    Restartbtn.setTitle("Restart", forState: UIControlState.Normal)
    Restartbtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
    Restartbtn.addTarget(self, action: Selector("Restart"), forControlEvents:UIControlEvents.TouchUpInside)
    self.view?.addSubview(Restartbtn)
    
    Restart() {
    self.view?.presentScene(playScene(), transition: SKTransition.crossFadeWithDuration(1.0))
    Restartbtn.removeFromSuperview()
    }
    

    每当英雄碰撞一些障碍时,游戏就应该重新启动(在我正在删除每个spritenode,动作和一个标签甚至场景本身之间),在最终场景中我们将呈现GameScene,即使我已尝试直接呈现gamecene甚至即时通讯问题。

1 个答案:

答案 0 :(得分:0)

重启游戏的一种方法是使用按钮从头开始重新加载整个场景或将其设置为一个功能。希望有所帮助。如果在提出问题时显示您的代码,人们将能够为您提供更多帮助:)

相关问题