gpt4 book ai didi

swift - SKLabelNode 不显示 [SpriteKit]

转载 作者:行者123 更新时间:2023-11-28 08:32:28 26 4
gpt4 key购买 nike

我创建了一个名为 smallScreen 的 SKShapeNode 和一个名为 screenLabel 的 SKLabelNode。

我后来尝试在 smallScreen 中显示 screenLabel。但是,当我运行代码时,它不起作用。我尝试将 screenLabel 作为 child 添加到自己,这似乎允许显示文本。每当我将 screenLabel 作为子节点添加到 smallScreen 时,它都不会显示。请帮助,非常感谢。

    self.smallScreen = (self.childNodeWithName("screen") as? SKShapeNode)!
self.smallScreen.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height * 2/3)

screenLabel.text = "Screen"
screenLabel.fontSize = 30
screenLabel.fontColor = UIColor.redColor()
screenLabel.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height * 2/3)
screenLabel.hidden = false
self.smallScreen.addChild(screenLabel)

最佳答案

默认情况下,在 Sprite-kit 中,场景的原点位于 View 的左下角。它的默认值为 CGPointZero,您无法更改它。 (source)。

Sprite 的 (SKSpriteNode) anchor 默认为 (0.5,0.5),对应于帧的中心 (source)。

SKShapeNode 没有 anchor

LearnCocos2D 对这个问题的回答:

When you use an image you may need to align it on its node's position.There's no other way to do so but through anchorPoint because theimage itself can't be modified (not easily anyway).

When you create a shape you have full control over the alignment ofthe shape through CGPath. You can simply translate the path to changethe shape's alignment relative to the node's position.

This is my interpretation, not fact.

那么,您的代码发生了什么

我不知道你是如何初始化你的形状的,我只是举个例子:

/* Create a Shape Node representing a rect centered at the Node's origin. */
@available(iOS 8.0, *)
public convenience init(rectOfSize size: CGSize)

所以我们创建这样的形状:

self.smallScreen = SKShapeNode.init(rectOfSize: CGSizeMake(200,200))

首先,您将 SKShapeNode 放置在屏幕的 X 中心,X 坐标为 Y = self.frame.size.height * 2/3。事实上,您的 smallScreen 是可见的。

关于您的标签,您已将其添加到 smallScreen,因此 screenLabel 必须尊重其父级的对齐方式。事实上,您只需进行以下更改即可看到您的标签:

来自:

   screenLabel.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height * 2/3)

收件人:

screenLabel.position = CGPointZero

并且您的标签根据其父级的对齐方式定位到 smallScreen 的中心。

关于swift - SKLabelNode 不显示 [SpriteKit],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38601964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com