【发布时间】:2018-06-29 17:36:13
【问题描述】:
我正在使用自己的 SKSpriteNode 类以编程方式创建 SKSpriteNode。我想知道如何将此 SKSpriteNode 添加到场景中。当我尝试在场景类的 didMove() 函数中添加Child() 时,我的应用程序不断崩溃。
class ChaosScene: SKScene {
var dragonNode: Dragon!
override func didMove(to view: SKView) {
dragonNode.createDragon()
addChild(dragonNode)
}
}
class Dragon: SKSpriteNode {
var dragonNode: SKSpriteNode!
func createDragon() {
// Create Dragon
dragonNode = SKSpriteNode(imageNamed: "dragon_2_fly_001")
dragonNode.name = "dragon"
dragonNode.physicsBody = SKPhysicsBody(circleOfRadius: 50)
let actionMove = SKAction.move(
to: CGPoint(x: -1000 ,y: dragonNode.position.y),
duration: 2.0)
dragonNode.run(actionMove)
}
}
【问题讨论】:
-
崩溃日志是怎么说的?当您调用
addChild时,dragonNode是否已经实例化? -
@Koen 线程 1:致命错误:在展开可选值时意外发现 nil
-
@Koen 我需要在场景中调用 createDragon 函数吗?
-
好吧,在你调用 addChild 之前。
-
@Koen 我确实打电话给它,我收到同样的错误
标签: swift sprite-kit scenekit