当我从我的菜单场景切换到我的gamescene时,它工作得非常好。但是,当我试图回到过去的时候,却是一场灾难。我得到:在展开可选值时意外发现nil。返回的代码是:
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
这很奇怪,因为当游戏启动时,它可以使用以下代码。错误必须来自视图/场景中的更改。入口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)
}
}
}
}
在展开可选值问题时,这不是一个普通的找到nil的原因,因为在我尝试返回菜单之前,它不会显示此错误。
https://stackoverflow.com/questions/43753394
复制相似问题