2017-01-10 6 views
0

Ich mache ein Spiel mit SpriteKit, wenn ich Szenen stürzt das Spiel ab mit einem Fehler übergehen:Fehler beim Übergang von Szenen? - SpriteKit

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

Hier ist mein Code, um zu sehen, was los ist:

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)     
    } 

Ein weiterer Fehler während des Absturzes ist:

[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

So wie ich Szene über 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)) 

Ein weiterer Fehler, wenn Szenen Übergang:

Der Fehler:

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

überschreiben Sie die Func didMove (zu sehen: SKView) in Ihrer benutzerdefinierten SKScene-Klasse und verschieben Sie Ihre Logik in diese Funktion. – soumil

+0

Ich habe versucht, dies zu tun, aber können Sie meine aktualisierte Frage überprüfen. wenn ich es richtig mache –

+0

Stürzt es ab, wenn Sie die SKAction Sequenz entfernen? Sieht es so aus, als würdest du jede Sekunde zu einer GameOver-Szene wechseln? – claassenApps

Antwort

0

habe ich ein neues Projekt und klebte Ihren exakt gleichen Code, aber ich habe keine Fehler bekommen. Ich musste nur die fehlenden Klammern hinzufügen.

Über die [Grafik] Warnung, ist es, weil Sie eine Farbe mit Komponenten größer als 1,0 ist, hier versuchen, zu erstellen: verwenden, um Werte zwischen 0,0 und 1,0

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

Sie benötigen, so dass Sie tun sollten dies:

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

Vielen Dank, es hat funktioniert. Aber es gibt einen anderen Fehler nach dem, den ich in meiner Frage –

+0

@DevWeby aktualisierte Wie ich sagte, machte ich eine perfekte Kopie Ihres Codes und es funktionierte. Ich habe keine Ahnung, warum es für dich abstürzt. Die einzige Lösung ist es, es zu debuggen. Überall wo Sie ein optionales verwenden, zuerst, überprüfen Sie es mit "if let unwrapped = optional" und in der else, etwas drucken. Wenn die App zu dem Punkt kommt, an dem sie abstürzt, wirst du wissen, wo sie ist. –

Verwandte Themen