如果分数增加,为什么我的 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
    }
}

结果: