我有这段代码可以在屏幕的左上角放置我的游戏的得分标签。
scoreLabel = SKLabelNode(text:"bats avoided: \(score)")
scoreLabel.fontSize = 50
scoreLabel.horizontalAlignmentMode = .left
scoreLabel.position = CGPoint (x:10 - (frame.size.width/2), y: (frame.size.height/2) - 50)
但标签仅出现在iPhone模拟器上,而不出现在iPad上。
如果我在运行时打印标签的一部分,则表明位置为x:-365 y:617,屏幕宽度/ 2为375,屏幕高度/ 2为667,因此肯定应该在该位置。
给什么?
答案 0 :(得分:1)
iOS中的坐标系将“左上角”表示为0,0。也就是说,随着x的增加,您将向右移动,而随着y的增加,您将向下移动。
您正在为x设置10 - (frame.size.width/2)
的值。假设您的frame.size.width
是300,例如,它等于-140
。还记得我怎么说“左上”表示为0,0吗?好吧,如果您的x坐标为-140
,则该元素将比0,0更左,然后离开屏幕。
要将某物放置在左上角,请插入10点。您只需将其位置设置为CGPoint(x: 10, y: 10)
。
值得注意的是,在处理精灵时,就像您的情况一样,Y0实际上是屏幕的底部,而不是屏幕的顶部。这有点令人讨厌,但要牢记。