我正在使用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
答案 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