3

我想添加一個SKLabelNode到我的場景的左上。目前我實現這個使用的值「300」SKLabelNode的奇數定位

func addMoneyLabel() { 
     let moneyLabel = SKLabelNode(fontNamed:"Copperplate") 
     moneyLabel.fontSize = 25 
     print("CGRectGetMidX(self.frame),", CGRectGetMidX(self.frame)) 
     print("CGRectGetMinX(self.frame),", CGRectGetMinX(self.frame)) 
     moneyLabel.position = CGPoint(
      x:300, 
      y:CGRectGetMaxY(self.frame) 
     ) 
     moneyLabel.text = "$500" 
     moneyLabel.verticalAlignmentMode = SKLabelVerticalAlignmentMode.Top 
     moneyLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Left 
     self.addChild(moneyLabel) 
    } 

這將產生如下所示的圖像:

enter image description here

爲什麼不爲「0」或CGRectGetMinX(self.frame)正確的價值定位左上角?

回答

2

由於場景大小不一定與視圖大小相同。默認情況下,場景大小爲1024x768。正如我所看到的,您正在使用iPhone 6s +,它與默認場景的大小相比具有不同的比例和不同的尺寸。

要調試這一點,把一個破發點,或只是打印scene.sizescene.view.size.

你可以讓一個場景有一個觀點的大小相同,如果你設置這個在您的視圖控制器:

scene.size = view.bounds.size 

現在,當您將x的位置設置爲0(並將y設置爲CGRectGetMaxY)時,標籤將被放置在左上角。