【发布时间】:2017-12-20 03:13:47
【问题描述】:
关联的 ViewController 是自动生成的默认值,并在 GameScene 对象上调用 presentScene。我可以证明 SKAction.run 闭包运行,但 SKLabelNode 从未出现。黑屏。
顺便说一句,由于与更复杂的项目有关的原因,我们想学习如何以编程方式创建 SKScene,而不是使用 Nib。这个测试项目没有 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)
}
}
【问题讨论】:
-
我猜你的场景锚点是 (0.5,0.5) 所以你的标签在右上角
-
nib (SKSEditor) 场景的默认锚点是 0.5 0.5... 你所做的将有 .zero 的锚点
标签: swift macos sprite-kit