- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Swift 和 SpriteKit 完全陌生,抱歉我真的一无所知。我正在尝试在单个场景中添加 2 个连续的 SKLabelNode。场景的背景是.black。我创建了一个函数,它从 UIBezierPath 生成一个 SKShapeNode,以某种 P 形覆盖比方说屏幕的 3/4,.fill = .white。我添加 child 并结束函数。
我在 didMove
覆盖中添加了函数。 (不要问我为什么,我正在关注一些例子,目前它似乎有效。我稍后会解决这个问题,但目前我专注于当前的问题)
然后我创建第二个函数来添加 2 个 SKLabelNode。一层黑色覆盖白色部分,一层白色覆盖黑色部分。然后我将两者都添加到场景中。
我在形状一之后添加了函数。
结果是白色部分上面的黑色没有显示。如果我在黑色上评论白色,则前一个会毫无问题地显示。
我试图推断 addChild
的顺序,但结果没有改变。
有谁知道原因吗?
我尝试切换 addChild
。
import SpriteKit
class MenuScene: SKScene {
override func didMove(to view: SKView) {
layoutScene()
addLabels()
}
func layoutScene() {
backgroundColor = .black
let rectSize = frame.size.width / 4
//Codice per creare la scena della home
//inizio
let homeScreen = SKShapeNode()
homeScreen.fillColor = .white
let shapeHome = UIBezierPath()
let shapeOrigin = CGPoint(x: view!.bounds.minX, y: view!.bounds.minY)
shapeHome.move(to: shapeOrigin)
shapeHome.addLine(to: CGPoint(x: view!.bounds.minX, y: view!.bounds.maxY))
shapeHome.addLine(to: CGPoint(x: view!.bounds.maxX, y: view!.bounds.maxY))
shapeHome.addLine(to: CGPoint(x: view!.bounds.maxX, y: rectSize))
shapeHome.addLine(to: CGPoint(x: view!.bounds.maxX - rectSize, y: rectSize))
shapeHome.addLine(to: CGPoint(x: view!.bounds.maxX - rectSize, y: view!.bounds.minY))
shapeHome.addLine(to: CGPoint(x: view!.bounds.minX, y: view!.bounds.minY))
shapeHome.close()
homeScreen.path = shapeHome.cgPath
homeScreen.fillColor = .white
//fine
addChild(homeScreen)
}
func addLabels() {
let rectSize = frame.size.width / 4
let home = SKLabelNode(text: "HOME")
home.fontName = "AvenirNext-Bold"
home.fontSize = 50.0
home.fontColor = .black
home.position = CGPoint(x: frame.midX, y: frame.midY)
addChild(home)
let b = SKLabelNode(text: "B")
b.fontName = "AvenirNext-Bold"
b.fontSize = 40.0
b.fontColor = .white
b.position = CGPoint(x: frame.maxX - (rectSize/2), y: rectSize/2)
addChild(b)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
}
}
最佳答案
尝试更改您添加的所有节点的 zPosition
,例如home.zPosition = 100
。
具有较高zPosition
的节点将显示在任何其他具有较低zPosition
的节点之上。通过为标签节点提供不同的 zPosition
值,您可以控制哪个标签显示在上方,哪个标签显示在下方。
更多信息可在此处获得:https://developer.apple.com/documentation/spritekit/sknode/1483107-zposition
希望这对您有所帮助!
关于swift - 如何在一个场景中显示 2 个标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55960769/
我是一名优秀的程序员,十分优秀!