0

私はゲームを構築しています。各シーンのメイン ViewController とサブ コントローラー: 開始画面とゲーム レベル

起動時に StartScreen を表示します。次に、再生ボタンが押されると、ゲーム シーンを表示します (コントローラーを追加します)。

ゲームが終了したら、スタート画面を提示します。

問題 : 開始画面が表示されず、ゲーム レベルがそのまま残ります。

コードは実際に呼び出され、SKView.scene は正しいもの (開始画面) への参照を保持します。しかし、視覚的には何も変わりません。

public func gameEnded() {
    print("game ended", skView.scene)
    gameSceneController.willMove(toParent: nil)
    gameSceneController.removeFromParent()
    skView.presentScene(startScene)
    print(skView.scene)
}

ただし、presentScene メソッドにトランジション パラメーターを追加すると、すべてが意図したとおりに機能します... 開始画面がゲーム シーンに置き換わります。

public func gameEnded() {
    print("game ended", skView.scene)
    gameSceneController.willMove(toParent: nil)
    gameSceneController.removeFromParent()
    skView.presentScene(startScene, transition: .crossFade(withDuration: 0.2)) //the ONLY difference in the whole code base
    print(skView.scene)
}

何が原因でしょうか?

注: 現在、Xcode 11 beta 7 を使用しています。

4

0 に答える 0