2017-02-18 80 views
0

我已經設置了場景並且一切正常。它看起來像這樣:enter image description hereSKNodes不在場景中顯示

但控制器是在Main.storyboard中設置的,我想擺脫它。所以我做了這樣的事情:

window = UIWindow(frame: UIScreen.main.bounds) 
    window?.makeKeyAndVisible() 
    window?.rootViewController = GameViewController() 

中的appDelegate這:

override func loadView() { 
    super.loadView() 
    self.view = SKView() 
} 

在GameViewController加載它。第一次,現場加載,但只有綠色背景,沒有其他節點。 (節點計數器顯示正確的節點數。)

所以我試着設置ignoresSiblingOrder都是true和false,scene.scaleMode的所有選項和我實現的最好結果是scene.scaleMode = .resizeFill。是這樣的: enter image description here

編輯: 位置爲界:

greenOne.position = CGPoint(x: greenOne.radius + sticksOffset, y: greenOne.radius + sticksOffset) 
redOne.position = CGPoint(x: self.frame.maxX - redOne.radius - sticksOffset/2, y: view.bounds.size.height/2) 

嘗試這樣做,重做出現旁邊的綠色

redOne.position = CGPoint(x: redOne.radius + 100, y: 200) 

看來這個觀點並不符合屏幕太大。

+0

那麼只有綠色的圓圈和背景顯示? – sicvayne

+0

是的,只有綠色的一個,雖然所有的圓都有相同的設置.. –

+0

我看到了,你能提供更多的代碼嗎?也許顯示這些圈子是如何設置的。 – sicvayne

回答

0

通過改變視圖的init在GameViewController解決:

override func loadView() { 
    super.loadView() 

    self.view = SKView(frame: UIScreen.main.applicationFrame) 
} 

舊版本的看法有零的寬度和高度,所以GameScene沒有得到任何尺寸。

+0

自iOS 9.0以來,'applicationFrame屬性已被棄用。你可能想要使用'UIScreen.bounds',或者只使用'self.view = SKView(frame:self.view.frame)' – Whirlwind

相關問題