如果分数增加,为什么我的SKLabelNode会离开页面

时间:2016-01-25 20:26:30

标签: swift sprite-kit position sklabelnode

所以我有一个显示用户高分的SKLabelNode,当用户得分高于例如5时,标签位置不在相同的位置,如果得分是例如35,那么,或者100让标签脱离屏幕,请有人帮忙解决这个问题,如果高分变化,有没有办法让标签保持在同一位置?我需要在标签上加上约束吗?顺便说一句,这是在sprite kit中使用swift Highscore label is off the screen

Highscore label isn't the same position as the other picture

2 个答案:

答案 0 :(得分:2)

你想在这里使用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
    }
}

结果:

alignment mode left

答案 1 :(得分:1)

我尝试将节点的anchorPoint从(0.5,0.5)(默认值)更改为(0,0)。这意味着节点现在将“锚定”到左上角而不是中间。

编辑: SpriteKit中的(0,0)是BOTTOM LEFT。使用(0,1)代替TOP LEFT!