如果分数增加,为什么我的 SKLabelNode 会离开页面
Why does my SKLabelNode go off the page if the score increases
所以我有一个显示用户高分的 SKLabelNode,当用户高分例如是 5 时,标签位置与分数例如是 35 时的位置不同,或者100 使标签离开屏幕,请有人帮助解决这个问题,如果高分发生变化,是否有办法使标签保持在同一位置?我需要对标签施加限制吗?顺便说一句,这是在 sprite kitand using swift
我会尝试将节点的锚点从默认值 (0.5, 0.5) 更改为 (0, 0)。这意味着节点现在 "anchored" 到左上角而不是中间。
编辑:
(0, 0) 在 SpriteKit 中是 BOTTOM LEFT。使用 (0, 1) 代替 TOP LEFT!
你想在这里使用SKLabelNodeHorizontalAlignmentMode.Left,像这样:
class GameScene: SKScene {
var label = SKLabelNode(fontNamed: "ArialMT")
var score: Int = 0 {
didSet {
label.text = "Score: \(score)"
}
}
override func didMoveToView(view: SKView) {
label.fontSize = 24
label.text = "Score: \(score)"
//Place the label in upper left corner of the screen
label.position = CGPoint(x: 50, y: CGRectGetMaxY(frame)-50)
//Add this
label.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Left
addChild(label)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
score+=5
}
}
结果:
所以我有一个显示用户高分的 SKLabelNode,当用户高分例如是 5 时,标签位置与分数例如是 35 时的位置不同,或者100 使标签离开屏幕,请有人帮助解决这个问题,如果高分发生变化,是否有办法使标签保持在同一位置?我需要对标签施加限制吗?顺便说一句,这是在 sprite kitand using swift
我会尝试将节点的锚点从默认值 (0.5, 0.5) 更改为 (0, 0)。这意味着节点现在 "anchored" 到左上角而不是中间。
编辑: (0, 0) 在 SpriteKit 中是 BOTTOM LEFT。使用 (0, 1) 代替 TOP LEFT!
你想在这里使用SKLabelNodeHorizontalAlignmentMode.Left,像这样:
class GameScene: SKScene {
var label = SKLabelNode(fontNamed: "ArialMT")
var score: Int = 0 {
didSet {
label.text = "Score: \(score)"
}
}
override func didMoveToView(view: SKView) {
label.fontSize = 24
label.text = "Score: \(score)"
//Place the label in upper left corner of the screen
label.position = CGPoint(x: 50, y: CGRectGetMaxY(frame)-50)
//Add this
label.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Left
addChild(label)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
score+=5
}
}
结果: