我剛剛開始研究Swift 3 - 從未編碼過,所以我完全不熟悉這一切。一直在尋找一個真正的基本節點教程,並有下面的代碼:Swift 3中的節點定位問題
class GameScene: SKScene {
override func didMove(to view: SKView) {
// SKLabelNode
var exampleLabelNode = SKLabelNode(fontNamed: "Helvetica")
exampleLabelNode.text = "Example Label Node!"
exampleLabelNode.fontSize = 30
exampleLabelNode.fontColor = SKColor.white
exampleLabelNode.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height * 0.75)
self.addChild(exampleLabelNode)
// SKSpriteNode
var exampleSpriteNode = SKSpriteNode(imageNamed: "myImage")
exampleSpriteNode.size = CGSize(width: 180, height: 180)
exampleSpriteNode.anchorPoint = CGPoint(x: 0.5, y: 0.5)
exampleSpriteNode.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height * 0.25)
exampleSpriteNode.zPosition = 100
exampleSpriteNode.name = "exampleName"
self.addChild(exampleSpriteNode)
}
}
這意味着要定位exampleLabelNode在屏幕的頂部中心和3/4 exampleSpriteNode 1/4在底部屏幕。
然而其定位exampleSpriteNode 3/4到屏幕和一半的頂部關閉以與exampleLabelNode右定位在屏幕上。
本教程適用於Swift 2,Swift 3的定位語法等不同嗎?
我想的行: 'exampleSpriteNode.anchorPoint = CGPoint(X:0.5,Y:0.5)' 是定位時它來設置exampleSpriteNode的中心點。 所以我正確地認爲通過使用屏幕的中心作爲默認x:0,y:0而不是左下角來進行定位? – Bootfit
@Bootfit就是這樣。 'anchorPoint'是所有節點(包括場景)都擁有的屬性。它決定節點的哪一部分是中心。你剛纔編寫的例子更改爲節點的anchorPoint,因爲它以'exampleSpriteNode.anchorPoint = ...'開頭。我的例子改變了場景(self),因爲它開始於'self.anchorPoint = ...' – Nik
@Bootfit我不明白你在問什麼,但是添加了這行嗎? – Nik