2014-06-11 29 views
5

我無法用Swift完全掌握使用SpriteKit的座標系。我查看了許多資源,包括蘋果開發文檔,但由於某些原因,我很困惑(我確信這一定很簡單)。使用Swift理解座標系SpriteKit的問題

我有一個從SKScene繼承的GameScene類。我只是試圖使用各種座標將SKSpriteNode添加到屏幕以習慣屏幕布局。我相信,當您創建的任何SKNode並通過這樣做給它一個位置以下

var node = SKSpriteNode(color: UIColor.brownColor(), size: CGSizeMake(100, 100)) 
node.position = CGPointMake(0, 0) 

,然後使用

self.addChild(node) 

已提供給該節點的座標放置任何SKNode在座標父節點。這是否意味着已經創建的棕色方塊應該放置在左下角?

這顯然不是這樣,是什麼令我困惑。我正在使用iPhone 5s模擬器進行肖像測試。

當我將位置設置爲(350,50)時,精靈節點只出現在左下角。

+0

你們是否在任一節點或場景的anchorPoint屬性進行修改?是一個風景遊戲,如果是的話,你如何以及在哪裏呈現你的場景? –

+0

我沒有對錨點屬性做任何事情,這是我錯過了什麼嗎? – kev3kev3

+0

我將設備設置爲縱向,並使用標準遊戲模板代碼。場景顯示在標準遊戲模板提供的默認GameViewController中。 – kev3kev3

回答

9

在Project Navigator中選擇GameScene.sks,選擇SKScene(它應該有一個黃色的邊框),並將其尺寸屬性設置爲320點x 569點(這是假設iPhone5/5S)無論哪種方式,這是問題。另外請確保你仔細檢查它,因爲我確信它已經改回到1024x768,但是現在似乎正在工作。

+0

這似乎並沒有解決我的問題。除非我做錯了。我選擇了GameScene.sks,它似乎只是一個黃色的矩形,我已經將值從1024 * 768更改爲320 * 569,但我仍然必須將它設置爲300而不是0.任何想法? – kev3kev3

+0

好了,在完成這個改變之後,然後重新啓動Xcode和模擬器似乎工作正常。 :D – kev3kev3

+0

很高興的工作,我會調查多一點明天,並編輯我的答案,還有一些事情我想檢查一下。 – fuzzygoat

3

在在功能viewDidLoad中()的GameViewController類中添加這行代碼:

scene.size = skView.bounds.size 
+2

在viewDidLoad方法中,視圖的最終大小可能尚未知道。 HTTP://計算器。com/a/9540935/3402095,並且有時正確實現viewWillLayoutSubviews(而不是viewDidLoad)用於場景初始化是個不錯的選擇。 – Whirlwind