iOS SKSpriteKit:调整SKSpriteNode的大小

iOS SKSpriteKit:调整SKSpriteNode的大小,ios,iphone,swift,resize,sprite-kit,Ios,Iphone,Swift,Resize,Sprite Kit,我有一个形象mySprite@2x.png它的尺寸为1240 x 1240像素或620 x 620点。 我想将它用于所有iPhone型号(不同的屏幕尺寸)。我只想调整它的大小,但我不知道如何正确地做到这一点 以下是问题所在: let sprite = SKSpriteNode(imageNamed:"mySprite") sprite.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)) pri

我有一个形象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宽。它的宽度和高度(它是一个正方形)几乎和iPhone4的屏幕高度(大约440分)一样高

场景缩放模式是
AspectFill
。 场景和精灵
xScale
yScale
=1.0


我不明白我做错了什么

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

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

这意味着你的SKSpriteNode看起来是450分而不是300分


您可能想改用
SKSceneScaleModeResizeFill

太好了!谢谢我试图更改它,但现在我在viewController中更改了它,这很有帮助!