В моем маленьком проекте Xcode Я пытаюсь переместить сцены, когда мой SKLabelNode коснулся его, представляет следующую сцену. По какой-то причине в моем методе перехода в сцену я заставляю его хранить его как необязательный. Опция возвращает false. Мои имена файлов верны, и никакие грамматические ошибки в ссылках не будут причиной проблемы здесь, это мой код. Когда я нажимаю мою платформу SKLabelNode, моя платформа ios, которая ее запускает, распознает прикосновение, приложение отключается в консоли, говоря, что необязательное значение возвращает nil. Как я могу решить эту проблему? СпасибоSKScene возвращает nil, когда метод перехода называется
import SpriteKit
class GameScene: SKScene {
let next = SKScene(fileNamed: "nextScene")
override func didMoveToView(view: SKView) {
let backgroundimage = SKSpriteNode(imageNamed: "ipbg")
backgroundimage.size = CGSize(width: self.frame.size.width, height: self.frame.size.height)
backgroundimage.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height/2)
addChild(backgroundimage)
let playButton = SKLabelNode(fontNamed: "")
playButton.name = "play"
playButton.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height/2 + 100)
playButton.text = "Play"
let wait = SKAction.waitForDuration(2)
let run = SKAction.runBlock({
let randomNumber = Int(arc4random_uniform(UInt32(4)))
switch(randomNumber){
case (0):
playButton.fontColor = UIColor.blueColor()
case 1:
playButton.fontColor = UIColor.yellowColor()
case 2:
playButton.fontColor = UIColor.purpleColor()
case 3:
playButton.fontColor = UIColor.orangeColor()
default: print("default")
}
})
addChild(playButton)
var repeatActionForever = SKAction.repeatActionForever(SKAction.sequence([wait, run]))
runAction(repeatActionForever)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let trans = SKTransition.crossFadeWithDuration(1)
let touch = touches.first! as UITouch
let touchLocation = touch.locationInNode(self)
let touchedNode = nodeAtPoint(touchLocation)
if touchedNode.name == "play"{
scene!.view?.presentScene(next!, transition: trans)
}
}
}
func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
Просьба указать строку кода, в которой приложение вызывает сбой. А также добавьте полное сообщение об ошибке. –