如何在 SpriteKit 中创建暂停标签?
How can I create a pause label in SpriteKit?
我想创建一个在游戏暂停时出现的 "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
是标签节点。
但这似乎不起作用。 sprite 节点显示为一个细矩形,我在其中看不到任何文本。
怎么做?
您分配给 pauseText.position
的值将导致文本被绘制出屏幕。
来自SKNode docs:
Every node in a node tree provides a coordinate system to its children. After a child is added to the node tree, it is positioned inside its parent’s coordinate system by setting its position properties.
如果您将位置设置为 (0, 0),您会看到文字,但位置有点太高了。然后只需更改 y 值,使其在其父项中垂直居中。
pauseText.position = CGPointMake(0, -pauseNode.frame.height / 2)
哪个会显示
在侧节点上,我了解到 fontName
可以是字体名称或字体系列名称,这很酷。
我想创建一个在游戏暂停时出现的 "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
是标签节点。
但这似乎不起作用。 sprite 节点显示为一个细矩形,我在其中看不到任何文本。
怎么做?
您分配给 pauseText.position
的值将导致文本被绘制出屏幕。
来自SKNode docs:
Every node in a node tree provides a coordinate system to its children. After a child is added to the node tree, it is positioned inside its parent’s coordinate system by setting its position properties.
如果您将位置设置为 (0, 0),您会看到文字,但位置有点太高了。然后只需更改 y 值,使其在其父项中垂直居中。
pauseText.position = CGPointMake(0, -pauseNode.frame.height / 2)
哪个会显示
在侧节点上,我了解到 fontName
可以是字体名称或字体系列名称,这很酷。