gpt4 book ai didi

objective-c - 将 SKLabelNode 设置为 SKSpriteNode Swift 的中心

转载 作者:搜寻专家 更新时间:2023-10-31 22:29:41 24 4
gpt4 key购买 nike

我正在尝试将 SKLabelNode 的位置设置为 SKSpriteNode 的中心。我已经查看了其他关于此的问题,但这些问题都不适用于 Swift 3。

这是我的代码:

    var letter1background = SKSpriteNode(imageNamed: "letterbackground")
var letter1text = SKLabelNode()

override func didMove(to view: SKView) {


letter1background.position = CGPoint(x: self.size.width / 8, y: self.size.height / 7.5)
letter1background.size = CGSize(width: self.size.width / 8, height: self.size.width / 8)
letter1background.zPosition = -5

self.addChild(letter1background)

letter1text.text = "C"
letter1text.fontName = "Verdana-Bold "
letter1text.fontSize = 28
letter1text.fontColor = UIColor.white
letter1text.zPosition = 0
letter1text.horizontalAlignmentMode = letter1background.center
letter1text.verticalAlignmentMode = letter1background.center

self.letter1background.addChild(letter1text)


}

这段代码看起来可以工作,但在 Swift 3 中我现在得到这个错误:

Value of type 'SKSpriteNode' has no member 'center'

我也试过:

self.letter1text.position = CGPoint(x: letter1background.frame.width/2 - (letter1text.frame.width/2), y: letter1background.frame.height/2 -(letter1text.frame.height/2))

&

letter1text.position = CGPoint(x:letter1background.frame.midX, y:letter1background.frame.midY)

但我仍然得到这样的结果:iphone screen

有什么想法吗?

最佳答案

您对标签位置的计算有误。你只需要在 0,0 位置添加一个标签,它就会因为 SpriteKit's coordinate system 而居中。规则(0,0 在节点的中心)。

override func didMove(to view: SKView) {

let label = SKLabelNode(fontNamed: "Arial")

label.text = "C"
label.fontColor = .black
label.verticalAlignmentMode = .center
label.fontSize = 29.0
label.zPosition = 1


let background = SKSpriteNode(color: .green, size: CGSize(width: 50, height: 50))

background.addChild(label)

addChild(background)

}

你会得到这个:

enter image description here

关于objective-c - 将 SKLabelNode 设置为 SKSpriteNode Swift 的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939798/

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