转换场景时出错? - SpriteKit

时间:2017-01-10 01:01:54

标签: ios swift sprite-kit

我正在使用SpriteKit制作游戏,当我转换场景时,游戏崩溃并出现错误:

  

线程1:EXC_BREAKPOINT(代码= 1,子代码= 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。在UIColorBreakForOutOfRangeColorComponents上设置断点以进行调试。此消息仅记录一次。   3fatal错误:在展开Optional值时意外发现nil   2017-01-09 16:58:33.716407 MyGameApp [18371:5784169]致命错误:在解开可选值时意外发现nil

我过渡场景的方式:

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

转换场景时的另一个错误:

错误:

  

致命错误:在展开Optional值时意外发现nil   2017-01-10 22:45:56.200385 MyNewApp [20313:6167168]致命错误:在解包可选值时意外发现nil

1 个答案:

答案 0 :(得分:0)

我创建了一个新项目并粘贴了完全相同的代码,但我没有收到任何错误。我只需要添加缺失的大括号。

关于[Graphics]警告,这是因为你试图创建一个组件大于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