2015-07-12 83 views
-1

我讀過0,0是在Sprite Kit的左下角,但是當我在這個位置放置一個精靈時,屏幕上沒有任何東西顯示出來。位置SKSpriteNode在0,0?

let squareSprite = SKSpriteNode(color: UIColor.purpleColor(), size: CGSize(width: 100, height: 100)) 
squareSprite.anchorPoint = CGPoint(x: 0, y: 0)         // bottom left corner of square 
squareSprite.position = CGPoint(x: 0, y: 0) 
addChild(squareSprite) 

我錯過了什麼?

+1

[在SpriteKit中處理不同的iOS設備分辨率](http://stackoverflow.com/questions/25205882/dealing-with-different-ios-device-resolutions-in-spritekit) –

回答

0

這可能是因爲您的視圖尺寸和場景尺寸有不同的尺寸。我想你正在使用默認的遊戲項目模板,其中場景從.sks文件加載(場景尺寸在這種情況下是1024x768)。如果場景的大小與視圖的大小不同,即使添加了精靈,它也可能不可見,因爲它可能不在屏幕上。您可以通過在其他位置添加一個精靈來進行測試(例如,x = 300,y = 300)。有一兩件事你可以做的是簡單地改變場景的大小(視圖控制器內)是這樣的:scene.size = skView.bounds.size而且,這裏最重要的是場景的scale mode(從文檔):渲染場景

後,其內容被複制進入 視圖。如果視圖和場景大小相同,則內容 可以直接複製到視圖中。如果兩者不同,則場景將縮放以適合視圖。 scaleMode屬性決定了內容如何縮放的 。

在此之上,我建議你閱讀this有關如何在視圖控制器初始化場景,這裏還討論有關viewDidLoad VS viewWillLayoutSubviews方法。

與您的問題無關,但您可能會發現更改錨點不會影響節點的物理主體。這是一個purely visual property

希望這會有所幫助。