无法将场景编辑器中的 SKSpriteNode 引用到代码中
Not able to reference a SKSpriteNode from Scene Editor to code
我创建了一个 GameScene.sks
文件,添加了一个 Color Sprite,并为其命名 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
。如何从场景编辑器中引用精灵而无需手动初始化并使用代码放置它?
我创建了一个 GameScene.sks
文件,添加了一个 Color Sprite,并为其命名 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
。如何从场景编辑器中引用精灵而无需手动初始化并使用代码放置它?