0

ゲームオーバー時にキャラクターが敵と衝突するシーンへの切り替え方を知りたいです。main.storyboard の下にシーンを作成しましたが、コードを介してそれを接続する方法を知りたいです。ボタンを使用して接続する方法しか知りませんが、死ぬときにボタンを押さないので、それは私が探しているものではありませんゲームオーバーのシーンにあなたを連れて行きます。

アップデート:

func gameOver() {
        gameDelegate?.gameDelegateGameOver(score)


        let gameOverScene: GameOverScene = GameOverScene(size: self.size)
        self.view!.presentScene(gameOverScene, transition: SKTransition.fadeWithDuration(0.0))

それが、衝突が検出されたときの私のゲームオーバーです。はい、新しいシーンに移動しますが、main.storyboard で作成したシーンには移動しません。

4

2 に答える 2

1

できることは、衝突ブール値を作成することです。それが true の場合 (したがって、何かが衝突した場合)、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 に追加した値です)

次に、敵のスプライトを追加する関数で、2 つを衝突させるために追加する必要があります。

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-24T15:32:13.487 に答える
0

絵コンテシーンを表示したい場合は、次のようなものを使用する必要があります

let gameOverScene = self.storyboard!.instantiateViewControllerWithIdentifier("GameOverViewController") as! GameOverViewController
self.view!.presentScene(gameOverScene, transition: SKTransition.fadeWithDuration(0.0))
于 2015-08-24T16:16:37.970 に答える