Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 触摸屏幕时如何呈现场景?_Swift_Sprite Kit_Skscene_Sktransition - Fatal编程技术网

Swift 触摸屏幕时如何呈现场景?

Swift 触摸屏幕时如何呈现场景?,swift,sprite-kit,skscene,sktransition,Swift,Sprite Kit,Skscene,Sktransition,我的游戏在游戏场景和主菜单场景中的菜单中 我将以下代码放在主菜单场景的覆盖touchesbeent中,以呈现游戏场景: let reveal = SKTransition.fade(withDuration: 0.5) let NextScene = GameScene(size: self.size) NextScene.scaleMode = SKSceneScaleMode.aspectFill self.view?.presentScene(NextScene,

我的游戏在游戏场景和主菜单场景中的菜单中

我将以下代码放在主菜单场景的覆盖
touchesbeent
中,以呈现游戏场景:

   let reveal = SKTransition.fade(withDuration: 0.5)
   let NextScene = GameScene(size: self.size)
   NextScene.scaleMode = SKSceneScaleMode.aspectFill
   self.view?.presentScene(NextScene, transition:reveal)
但是如果我测试它,我会得到以下错误:

致命错误:在展开可选值时意外发现nil

我只是不明白为什么,因为在游戏场景中,我在GameOver函数中有以下代码,它工作得非常好:

    let reveal = SKTransition.fade(withDuration: 0.5)
    let MainMenuScene = MainMenu(size: self.size)
    MainMenuScene.scaleMode = SKSceneScaleMode.aspectFill
    self.view?.presentScene(MainMenuScene, transition:reveal)

它们是完全相同的,但只有GameOver函数中的那一条起作用,为什么?

如果能看到正在对零值进行硬展开的那一行,那会很有帮助。如何找到这一行?当它在EXC_BAD_指令上崩溃时,它不会向我显示红色警告标志或其他东西。Xcode应该以红色显示有问题的行,至少如果它在代码中的话。您还可以在左侧栏(Debug Navigator)中看到调用堆栈。当它崩溃时,它只会进入另一个称为Thread 1的窗口,然后在最后一行中显示一条消息:Thread 1:EXC_BREAKPOINT(code=1,subcode=0x1005c51fc)。在代码崩溃后,我找不到任何红线。尝试使用嵌套的if-like:if-let-reveal=SKTransition.fade(持续时间:0.5){if-let-NextScene=GameScene(size:self.size){NextScene.scaleMode=SKSceneScaleMode.aspectFill-self.view?.presentScene(NextScene,transition:reveal)}调用这四行。。将防止崩溃。查看正在对零值进行硬展开的行将很有帮助。如何找到该行?当它在EXC_BAD_指令上崩溃时,它不会向我显示红色警告标志或其他东西。Xcode应该以红色显示有问题的行,至少如果它在代码中的话。您还可以在左侧栏(Debug Navigator)中看到调用堆栈。当它崩溃时,它只会进入另一个称为Thread 1的窗口,然后在最后一行中显示一条消息:Thread 1:EXC_BREAKPOINT(code=1,subcode=0x1005c51fc)。在代码崩溃后,我找不到任何红线。尝试使用嵌套的if-like:if-let-reveal=SKTransition.fade(持续时间:0.5){if-let-NextScene=GameScene(size:self.size){NextScene.scaleMode=SKSceneScaleMode.aspectFill-self.view?.presentScene(NextScene,transition:reveal)}调用这四行。。会阻止你坠机。