返回到快速3 Spritkit中的先前视图时出错

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (24)

当我从菜单场景切换到我的游戏时,它运行得非常好。但是,当我试图返回时,这是一场灾难。我得到:在打开一个可选的值时意外地发现为零。返回的代码是:

let menuscene = MenuScene(size: self.size)
menuscene.scaleMode = scaleMode
self.view?.presentScene(menuscene)

它说错误来自的代码是:

PlaygamebtnNode = self.childNode(withName: "PlaygamebtnNode") as! SKSpriteNode
NamelblNode = self.childNode(withName: "NamelblNode") as! SKLabelNode

这很奇怪,因为当游戏启动时,这段代码是可以的。错误必须来自视图/场景的变化。entrie MenuScene类的代码是:

import SpriteKit
import GameplayKit

class MenuScene: SKScene {
    var PlaygamebtnNode:SKSpriteNode!
    var NamelblNode:SKLabelNode!

    override func didMove(to view: SKView) {

        PlaygamebtnNode = self.childNode(withName: "PlaygamebtnNode") as! SKSpriteNode
        NamelblNode = self.childNode(withName: "NamelblNode") as! SKLabelNode


        PlaygamebtnNode.texture = SKTexture(imageNamed: "Playgamebtn")
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        let touch = touches.first

        if let location = touch?.location(in: self){
            let nodesArray = self.nodes(at: location)

            if nodesArray.first?.name == "PlaygamebtnNode" {
                let transition = SKTransition.flipHorizontal(withDuration: 0.5)

                let nextScene = GameScene(size: self.size)
                self.view?.presentScene(nextScene, transition: transition)
            }
        }
    }
}

这不是一个普通的零,而打开一个可选的值问题是因为它显示此错误,直到我尝试返回到菜单。

提问于
用户回答回答于

问题从这一行开始:

PlaygamebtnNode = self.childNode(withName: "PlaygamebtnNode") as! SKSpriteNode 

因为就像我说的,self.childNode(withName:)正在回归nil

然而,真正的问题与这一行有关(在leavegamefunc()):

let menuscene = MenuScene(size: self.size)

你已经定义了你的PlaygamebtnNode在MenuScene.sks中,使用了错误的初始化器(MenuScene.init(size:))。

解决办法:

 func leavegamefunc() {
        if let menuScene = MenuScene(fileNamed: "MenuScene"){
            menuScene.scaleMode = scaleMode
            self.view?.presentScene(menuScene)
        }
    }

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    27 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答
  • 富有想象力的人

    2 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券