gpt4 book ai didi

swift - 无法从场景编辑器引用 SKSpriteNode 到代码

转载 作者:行者123 更新时间:2023-11-30 10:51:08 27 4
gpt4 key购买 nike

我创建了一个 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? SKSpriteNodenil。如何从场景编辑器引用 Sprite ,而无需使用代码手动初始化和放置它?

最佳答案

首先确保您的 GameScene.sks 中的 dino 确实是 Scene 子级

enter image description here

然后不要在这一行中创建一个新的SKSpriteNode

private var dino: SKSpriteNode? = SKSpriteNode()

使其成为可选

private var dino: SKSpriteNode?

关于swift - 无法从场景编辑器引用 SKSpriteNode 到代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54514768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com