Я создал файл 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
.Как мне ссылаться на спрайт из редактора сцены без необходимости вручную инициализировать и размещать его с помощью кода?