繁体   English   中英

如何在SpriteKit中创建暂停标签?

[英]How can I create a pause label in SpriteKit?

我想创建一个“ PAUSED”标志,在游戏暂停时出现。 它应该具有白色背景和文本“ PAUSED”。

--------
|PAUSED|
--------

文档说您不能将节点子类化以进行自定义绘制,这很可悲:(

因此,我决定使用具有白色的sprite节点和一个label节点来执行此操作。 然后,我可以将label节点添加为sprite节点的子节点:

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是Sprite节点, pauseText是标签节点。

但这似乎不起作用。 Sprite节点显示为细矩形,但看不到任何文本。

这个怎么做?

您为pauseText.position分配的值将导致文本从屏幕上绘制出来。

SKNode文档

节点树中的每个节点都为其子节点提供一个坐标系。 将子级添加到节点树后,可通过设置其位置属性将其定位在其父级的坐标系中。

如果将位置设置为(0,0),您会看到文本,但是它有点太高了。 然后只需更改y值,使其垂直位于其父级的中心即可。

pauseText.position = CGPointMake(0, -pauseNode.frame.height / 2)

哪个会显示

在此处输入图片说明


在侧面节点上,我了解到fontName可以是字体名称或字体系列名称,因此很酷。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM