【发布时间】:2019-06-28 02:42:05
【问题描述】:
我创建了一个GameScene.sks 文件,添加了一个彩色精灵,并为其命名为dino。然后在GameViewController,
override func viewDidLoad() {
let scene = GameScene(size: view.bounds.size)
let skView = view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.ignoresSiblingOrder = true
scene.scaleMode = .resizeFill
skView.presentScene(scene)
}
我有GameScene.swift,看起来像
class GameScene: SKScene {
//let player = SKSpriteNode(imageNamed: "dino-left")
private var dino: SKSpriteNode? = SKSpriteNode()
private var dinoWalkingFrames: [SKTexture] = []
override func didMove(to view: SKView) {
self.backgroundColor = NSColor.white
if let someDino = self.childNode(withName: "dino") as? SKSpriteNode {
// ... does not works -->
dino = someDino
dino?.physicsBody?.isDynamic = false
print("Worked")
} else {
initDino() // --> this works
initBackground()
}
}
func initDino() {
// manually load image from texture atlas and add using addChild
// ...
}
// ...
}
引用self.childNode(withName: "dino") as? SKSpriteNode 是nil。如何从场景编辑器中引用精灵,而无需使用代码手动初始化和放置?
【问题讨论】:
标签: swift macos cocoa sprite-kit