我想创建一个" PAUSED"游戏暂停时出现的标志。它应该有一个白色背景和文本" PAUSED"。
--------
|PAUSED|
--------
文档说你不能将节点子类化来进行自定义绘图,这很可悲:(
所以我决定使用白色的精灵节点和标签节点来做到这一点。然后我可以将标签节点添加为精灵节点的子节点:
let pauseText = SKLabelNode(text: "PAUSED")
pauseText.fontColor = UIColor.blackColor()
pauseText.fontName = "Times New Roman"
pauseText.fontSize = 30
pauseNode = SKSpriteNode(color: UIColor.whiteColor(), size: pauseText.frame.size)
pauseNode.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
pauseText.position = CGPointMake(CGRectGetMidX(pauseNode.frame), CGRectGetMidY(pauseNode.frame))
pauseNode.zPosition = 999
pauseNode.addChild(pauseText)
其中pauseNode
是精灵节点,pauseText
是标签节点。
但这似乎不起作用。精灵节点显示为一个薄矩形,我看不到其中的任何文字。
怎么做?
答案 0 :(得分:2)
您分配给pauseText.position
的值将导致文本被删除。
来自SKNode docs:
节点树中的每个节点都为其子节点提供坐标系。将子项添加到节点树后,通过设置其位置属性将其定位在其父级坐标系中。
如果将位置设置为(0,0),您将看到文本,但它有点太高了。然后只需更改y值,使其垂直居中于其父级。
pauseText.position = CGPointMake(0, -pauseNode.frame.height / 2)
将显示
在侧节点上,我了解到fontName
可以是字体名称,也可以是字体系列名称,这样很酷。