2015-04-04 65 views
0

我正在一個應用程序,應該在屏幕上有一個紅色的圓圈。起初,當我只用一個場景進行測試時,這個圓圈看起來很圓。然而,我已經在另一個場景中添加了,現在圓圈出現如下: enter image description hereSKShapeNode圓不顯示圓形

圓圈在x方向看起來要長得多。 這裏是我使用,使圓(所有這一切都在skscene)代碼:

let ball = Ball(circleOfRadius: 500)//ball is a subclass of SKShapeNode 
    ball.setScale((self.frame.height/6)/1000)    
    ball.position = CGPointMake(self.frame.width/4, self.frame.height/2) 
    ball.fillColor = UIColor.redColor() 
    ball.strokeColor = UIColor.clearColor() 
    self.addChild(ball) 

這裏是我用來過渡到現場與球的代碼(A不同skscene):

func transitionToGame(){ 
    let reveal = SKTransition.crossFadeWithDuration(1.0) 
    let gameOverScene = GameScene(size: self.size) 
    self.view?.presentScene(gameOverScene, transition: reveal) 
} 

關於爲什麼球不再顯示爲圓的任何想法?我擔心這也會拋出我嘗試添加的其他節點,並且可能意味着座標系不正確。我很高興聽到任何想法。謝謝!

回答

1

「所有這些在skview中」你確定你沒有在SKScene中這麼做嗎?

如果球確實被直接添加到場景中,我會查看您的視圖控制器中的scene.scaleMode。大多數時候人們將其設置爲scene.scaleMode = .AspectFill,但是當您創建新場景時,您並未設置scaleMode。這可能與確保兩個場景具有相同的scaleMode一樣簡單。

我猜這將解決您的問題。

func transitionToGame(){ 
    let reveal = SKTransition.crossFadeWithDuration(1.0) 
    let gameOverScene = GameScene(size: self.size) 
    gameOverScene.scaleMode = scene.scaleMode 
    self.view?.presentScene(gameOverScene, transition: reveal) 
} 

希望有幫助。

+0

是的我打算寫SKScene,不知道我爲什麼寫了SKView。感謝這完美的作品! – Kendel 2015-04-04 22:12:55