我有一张图像mySprite@2x.png它的尺寸为1240 x 1240像素或620 x 620点。 我想将它用于所有iPhone型号(不同的屏幕尺寸)。我只想要它调整大小,但我无法弄清楚如何正确地做到这一点。
以下是出了什么问题:
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点)一样高。
场景scaleMode为AspectFill
。
场景和精灵xScale
和yScale
= 1.0
我不明白我做错了什么。
答案 0 :(得分:1)
根据视图框架中的日志消息,宽度为480,高度为320,表示您的视图处于横向模式。
如果您的SKScene的大小设置为纵向模式下的视图大小,则使用scaleMode AspectFill
会将场景的宽度从320扩展到480.
这意味着您的SKSpriteNode似乎是450pts而不是300pts。
您可能想要使用SKSceneScaleModeResizeFill
代替?