【发布时间】:2017-01-10 01:01:54
【问题描述】:
我正在使用 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 上设置断点进行调试。此消息只会记录一次。 3 致命错误:在展开可选值时意外发现 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))
过渡场景时的另一个错误:
错误:
致命错误:在展开可选值时意外发现 nil 2017-01-10 22:45:56.200385 MyNewApp [20313:6167168] 致命错误:在展开可选值时意外发现 nil
【问题讨论】:
-
在您的自定义 SKScene 类中覆盖 func didMove(to view: SKView) 并将您的逻辑移动到此函数中。
-
我试过这样做,但你能检查我更新的问题吗?如果我做对了
-
如果取出SKAction序列会崩溃吗?您似乎每秒钟都在过渡到 GameOver 场景?
-
使用异常断点找到导致崩溃的确切代码行,并告诉我们结果。
-
@claassenApps 是的,当我评论 SKAction 序列时它仍然崩溃。
标签: ios swift sprite-kit