为什么这个SpriteKit程序不绘制任何东西?



关联的ViewController是自动生成的默认值,并在GameScene对象上调用presentScene。 我可以证明SKAction.run闭包运行,但SKLabelNode从未出现过。 黑屏。

顺便说一句,出于与更复杂的项目有关的原因,我们想学习如何以编程方式创建 SKScene,而不是使用 Nib。 此测试项目没有笔尖。

import SpriteKit
class GameScene: SKScene {
var label : SKLabelNode?
var mouseLife = 30
override func didMove(to view: SKView) {
label = SKLabelNode(text: "30")
label?.alpha = 1.0
label?.position = CGPoint(x: size.width / 2, y: size.height / 2)
label?.fontSize = 10
label?.color = NSColor.red
scene?.addChild(label!)
let wait = SKAction.wait(forDuration: 1)
let tick = SKAction.run {
self.mouseLife = self.mouseLife - 1
self.label!.text = String(self.mouseLife)
print("tick action ran")
}
let action = SKAction.sequence([wait, tick])
let forever = SKAction.repeatForever(action)
label!.run(forever)
}
}

谢谢,流动性,您的评论有助于为我指明正确的方向,并导致进行正确的实验。

事实上,错误甚至比这更糟糕:我的 GameScene 实例在初始化时没有被赋予大小,因此它默认为零大小。实际上,这意味着整个显示器是一个逻辑像素,它是白色还是黑色,具体取决于文本是否恰好覆盖了(0, 0)点。

一旦这个问题得到解决,我们就能够很快围绕一个合适的锚点进行组织。

最新更新