gpt4 book ai didi

swift - 如果未在 init 中添加,则场景子项不会显示

转载 作者:行者123 更新时间:2023-11-30 10:33:06 25 4
gpt4 key购买 nike

如果在 SceneKit 场景中单击某个对象,我会尝试显示按钮,它们作为场景的子项可见,但不会在屏幕上呈现。

init(size: CGSize, gameController: GameController) {
super.init(size: size)

self.gameController = gameController
self.scaleMode = .aspectFit

// Label is shown in scene
testLabel = SKLabelNode(text: "test")
testLabel.position = CGPoint(x: 100, y: 100)
testLabel.fontSize = 50.0
testLabel.fontColor = UIColor.red
addChild(testLabel)

// Label is not shown in scene
let timer = Timer(timeInterval: 1, repeats: false) { _ in
var label = SKLabelNode(text: "test 2")
label.position = CGPoint(x: 200, y: 200)
label.fontSize = 50.0
label.fontColor = UIColor.red
addChild(label)
}
}

最佳答案

我认为您正在制作一个计划外的计时器,然后将其扔掉。您可能的意思是类似 Timer.scheduledTimer(...)

无论如何,对于 SpriteKit 来说,最好在 SKAction 框架内工作,否则你最终会遇到问题,例如,你已经暂停了游戏,而你的计时器仍在运行,因为它们与SpriteKit。

查看 SKAction 初始值设定项,特别是equence()、wait(forDuration:)、run()

https://developer.apple.com/documentation/spritekit/skaction/action_initializers

关于swift - 如果未在 init 中添加,则场景子项不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58670644/

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