1

ゲームが一時停止したときに表示される「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はラベル ノードです。

しかし、これはうまくいかないようです。スプライト ノードが細い長方形として表示され、その中にテキストが表示されません。

これを行う方法?

4

1 に答える 1

2

割り当てている値pauseText.positionにより、テキストが画面からはみ出します。

SKNode ドキュメントから:

ノード ツリー内のすべてのノードは、その子に座標系を提供します。子がノード ツリーに追加された後、位置プロパティを設定することにより、子は親の座標系内に配置されます。

位置を (0, 0) に設定すると、テキストが表示されますが、少し高すぎます。次に、親の垂直方向の中央に配置されるように y 値を変更します。

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

どちらが表示されますか

ここに画像の説明を入力


fontNameサイド ノードでは、それがフォント名またはフォント ファミリー名のいずれかである可能性があることを知りました。

于 2016-02-21T06:20:33.347 に答える