Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在SpriteKit中创建暂停标签?_Ios_Swift_Sprite Kit_Pause - Fatal编程技术网

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

Ios 如何在SpriteKit中创建暂停标签?,ios,swift,sprite-kit,pause,Ios,Swift,Sprite Kit,Pause,我想创建一个“暂停”标志,在游戏暂停时出现。它应该有一个白色的背景和文字“暂停” 文档中说,您不能将节点子类化以进行自定义绘图,这很遗憾:( 因此,我决定使用一个白色的精灵节点和一个标签节点来完成此操作。然后,我可以将标签节点添加为精灵节点的子节点: let pauseText = SKLabelNode(text: "PAUSED") pauseText.fontColor = UIColor.blackColor() pauseText.fontName = "Times New Roman

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

文档中说,您不能将节点子类化以进行自定义绘图,这很遗憾:(

因此,我决定使用一个白色的精灵节点和一个标签节点来完成此操作。然后,我可以将标签节点添加为精灵节点的子节点:

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
是标签节点

但这似乎不起作用。精灵节点显示为一个薄矩形,我看不到其中的任何文本


如何执行此操作?

指定给
pauseText.position
的值将导致文本从屏幕上消失

从:

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

如果您将位置设置为(0,0),您将看到文本,但它的位置有点太高。然后只需更改y值,使其在父对象中垂直居中

pauseText.position = CGPointMake(0, -pauseNode.frame.height / 2)
这将显示



在一个侧节点上,我了解到
fontName
可以是字体名称,也可以是字体系列名称,这很酷。

字体名称无效。您需要使用如图所示的其中一个字体名称。否,我尝试只放置一个标签节点(使用相同的字体系列)在屏幕上,它工作。但我真的希望背景是白色的@CleverError@Sweeper您可以考虑加载特定字体,而不是整个字体族。请多读,但不是我的代码已经设置了暂停文本的位置吗?<代码> PUESETExt.Posie= CGPositPog(CGRulGGIDMIDX(PauleNo.Frand),CGRectGetMidY(PauleNo.Frand)):您的代码正在设置位置,但它不是您想要的位置。@请注意,加载整个字体系列而不是特定字体可能会影响加载时间,这样您可能会遇到明显的延迟。在许多情况下,加载特定字体是最有效的解决方案。
pauseText.position = CGPointMake(0, -pauseNode.frame.height / 2)