如何从我的SKScene创建一个Segue到另一个UIViewController?

时间:2017-08-17 18:04:00

标签: swift sprite-kit segue

我目前正在制作一款非常基本的“Pong”游戏。我有应用程序正在运行,但我想添加一个gameover屏幕。一旦用户或计算机达到5分,我就想要显示游戏场景。

这是我的分数更新功能:

func addScore(playerWhoWon: SKSpriteNode) {
    ball.position = CGPoint(x: 0, y: 0)
    ball.physicsBody?.velocity = CGVector(dx: 0, dy: 0)

    if playerWhoWon == main {

        score[0] += 1

        if score[0] >= 5 {
            // call a function that segues to endGame()
        }

        let when = DispatchTime.now() + 0.7
        DispatchQueue.main.asyncAfter(deadline: when) {
            self.ball.physicsBody?.applyImpulse(CGVector(dx: 15, dy: 15))
        }

    } else if playerWhoWon == enemy {

        score[1] += 1

        if score[1] >= 5 {
            // call a function that segues to endGame()
        }

        let when = DispatchTime.now() + 0.7
        DispatchQueue.main.asyncAfter(deadline: when) {
            self.ball.physicsBody?.applyImpulse(CGVector(dx: -15, dy: -15))
        }   
    }

    topLbl.text = "\(score[1])"
    btmLbl.text = "\(score[0])"
}

我希望能够调用“endGame”函数,该函数根据游戏结果分为“You Win”或“You Lose”UIViewcontroller。非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

在您的SKScene中,声明一个视图控制器

var viewController: UIViewController?

在故事板中,在托管SKScene的视图控制器和视图控制器上的游戏之间创建一个segue。给它一个标识符。

无论您想要哪个地方,请拨打此电话(用标识符替换"标识符")

viewController?.performSegue(withIdentifier: "identifier", sender: viewController)