2017-01-10 6 views
0

Я сделать игру с SpriteKit, когда я переходному сцены игра вылетает с ошибкой:Ошибка при переходе сцен? - SpriteKit

Thread 1: EXC_BREAKPOINT (code=1, subcode=0x1007351fc).

Вот мой код, чтобы увидеть, что происходит:

import UIKit 
    import SpriteKit 

class Congrats: SKScene { 
override func didMove(to view: SKView) { 


backgroundColor = UIColor(red: CGFloat(248), green: CGFloat(248), blue: CGFloat(248), alpha: CGFloat(255)) //SKColor 

var message = "Good Job! " 
let label = SKLabelNode(fontNamed: "AppleSDGothicNeo-Bold") 
label.text = message 
label.fontSize = 22 
label.fontColor = SKColor.blue 
self.backgroundColor = SKColor.black 
label.position = CGPoint(x: size.width/2, y: size.height/2) 
addChild(label)   
run(SKAction.sequence([ 
    SKAction.wait(forDuration: 1.0), 
    SKAction.run() { 
     let reveal = SKTransition.flipHorizontal(withDuration: 1.0) 
     let scene = GameOver(size: (self.view?.frame.size)!)     
     self.view?.presentScene(scene, transition:reveal)     
    } 

Другая ошибка во время аварии является:

[Graphics] UIColor created with component values far outside the expected range. Set a breakpoint on UIColorBreakForOutOfRangeColorComponents to debug. This message will only be logged once. 3fatal error: unexpectedly found nil while unwrapping an Optional value 2017-01-09 16:58:33.716407 MyGameApp[18371:5784169] fatal error: unexpectedly found nil while unwrapping an Optional value

Как я переход сцены s:

for touch: AnyObject in touches { 
    let skView = self.view! as SKView 
    skView.ignoresSiblingOrder = true 
    var scene: Congrats! 
    scene = Congrats(size: skView.bounds.size) 
    scene.scaleMode = .aspectFill 
    skView.presentScene(scene, transition: SKTransition.doorsOpenHorizontal(withDuration: 1.0)) 

Другая ошибка при переходе сцены:

Ошибка:

fatal error: unexpectedly found nil while unwrapping an Optional value 2017-01-10 22:45:56.200385 MyNewApp[20313:6167168] fatal error: unexpectedly found nil while unwrapping an Optional value

+0

переопределить func didMove (для просмотра: SKView) в вашем пользовательском классе SKScene и переместить вашу логику в эту функцию. – soumil

+0

Я пытался это сделать, но вы можете проверить мой обновленный вопрос. если я делаю это правильно –

+0

Сбой, если вы выберете последовательность SKAction? Похоже, вы переходите на сцену GameOver каждую секунду? – claassenApps

ответ

0

Я создал новый проект и вставить ваш тот же код, но я не получил каких-либо ошибок. Мне приходилось добавлять отсутствующие фигурные скобки.

О [Графика] предупреждение, это происходит потому, что вы пытаетесь создать цвет с компонентами больше, чем 1,0, здесь:

backgroundColor = UIColor(red: CGFloat(248), green: CGFloat(248), blue: CGFloat(248), alpha: CGFloat(255)) //SKColor 

Вы должны использовать значения в диапазоне от 0,0 до 1,0, так что вы должны сделать это:

backgroundColor = UIColor(red: 248.0/255.0, green: 248.0/255.0, blue: 248.0/255.0, alpha: 1.0) //SKColor 
+0

Большое вам спасибо, это сработало. Но после этого есть еще одна ошибка, которую я обновил в своем вопросе. –

+0

@DevWeby Как я уже сказал, я сделал идеальную копию вашего кода, и это сработало. Я понятия не имею, почему он терпит крах для вас. Единственное решение - отладить его. Всюду, где вы используете опцию, сначала проверьте ее с помощью «if let unwrapped = optional», а в другом - напечатайте что-нибудь. Когда приложение дойдет до точки, где он сбой, вы узнаете, где он находится. –

Смежные вопросы