我想知道当角色在游戏结束时与敌人发生冲突时,如何转换成场景。我已经在main.storyboard下做了一个场景,我想知道如何通过代码将它连接起来,我只知道如何使用按钮来连接它,但这不是我想要的,因为当你死后会按下一个按钮,带你去现场的游戏。
更新:
func gameOver() {
gameDelegate?.gameDelegateGameOver(score)
let gameOverScene: GameOverScene = GameOverScene(size: self.size)
self.view!.presentScene(gameOverScene, transition: SKTransition.fadeWithDuration(0.0))当检测到碰撞时,为我的gameOver提供了这些。是的,它确实带我去了一个新的场景,但不是我用main.storyboard.制作的场景。
发布于 2015-08-24 15:32:13
您可以做的是创建一个冲突布尔值,如果它是真的(因此,某些东西发生了冲突),您可以在update函数中使用view.presentScene(YOUR_SCENE, SK_ANIMATION)呈现一个新场景。
编辑:
我已经从您获得代码的地方找到了教程(或者至少我假设您已经找到了),并让它使用以下内容:
在"didMoveView“中添加:
player.physicsBody?.categoryBitMask = PhysicsCategory.Player
player.physicsBody?.contactTestBitMask = PhysicsCategory.Monster
player.physicsBody?.collisionBitMask = PhysicsCategory.None
player.physicsBody = SKPhysicsBody(circleOfRadius: player.size.width/2)
player.physicsBody?.dynamic = true(PhysicsCategory.Player只是我在PhysicsCategory中添加的一个值)
然后,在添加敌人精灵的函数中,您必须添加才能使两者发生碰撞:
monster.physicsBody?.contactTestBitMask = PhysicsCategory.Player最后但并非最不重要的一点是,您必须添加以下代码以将“一个操作”添加到didBeginContact函数的冲突中:
if ((secondBody.categoryBitMask & PhysicsCategory.Monster != 0) &&
(firstBody.categoryBitMask & PhysicsCategory.Player != 0)) {
let gameOverScene = GameOverScene(size: self.size, won: false)
view?.presentScene(gameOverScene, transition: SKTransition.flipHorizontalWithDuration(0.5))
}希望它现在对你有用!
发布于 2015-08-24 16:16:37
如果你想呈现一个故事板场景,你需要使用类似的方法
let gameOverScene = self.storyboard!.instantiateViewControllerWithIdentifier("GameOverViewController") as! GameOverViewController
self.view!.presentScene(gameOverScene, transition: SKTransition.fadeWithDuration(0.0))https://stackoverflow.com/questions/32184816
复制相似问题