SKShapeNode圆不显示圆形

问题描述:

我正在一个应用程序,应该在屏幕上有一个红色的圆圈。起初,当我只用一个场景进行测试时,这个圆圈看起来很圆。然而,我已经在另一个场景中添加了,现在圆圈出现如下: 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) 
} 

关于为什么球不再显示为圆的任何想法?我担心这也会抛出我尝试添加的其他节点,并且可能意味着坐标系不正确。我很高兴听到任何想法。谢谢!

“所有这些在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