2014-09-29 89 views
1

我有一个图像[email protected]尺寸1240 x 1240像素或620 x 620点。 我想用于所有iPhone型号(不同的屏幕尺寸)。我只想调整它的大小,但我无法弄清楚如何正确地做到这一点。iOS SKSpriteKit:调整大小SKSpriteNode

这里是去错了:

let sprite = SKSpriteNode(imageNamed:"mySprite") 
sprite.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)) 

println(sprite.size) 
sprite.size = CGSize(width: 300, height: 300) 

println(sprite.size) 
println(self.view?.frame.size) 
self.addChild(sprite) 

下面是测试日志在iPhone 4S上:

(620.0,620.0) 
(300.0,300.0) 
Optional((480.0,320.0)) 

日志看起来不错,但在屏幕上,我可以看到图像比iPhone大4S宽度。它的宽度和高度(这是一个正方形)几乎和iPhone 4的屏幕高度一样高(约440点)。

场景比例模式为AspectFill。 场景和精灵xScaleyScale = 1.0

我不明白我在做什么错。

回答

1

根据视图框架中的日志消息,宽度为480,高度为320,这意味着您的视图处于横向模式。

如果您SKScene的大小设置为在纵向模式视图的大小,使用的scaleMode AspectFill将伸展场景的宽度从320到480

这意味着你的SKSpriteNode会显得450pts而不是300pts。

您可能想用SKSceneScaleModeResizeFill代替?

+0

太棒了!谢谢。我试图改变它,但现在我改变它在viewController,它有帮助! – 2014-09-29 14:50:18