【问题标题】:iOS SKSpriteKit: resizing SKSpriteNodeiOS SpriteKit:调整 SKSpriteNode 的大小
【发布时间】:2014-11-23 20:43:27
【问题描述】:

我有一个图像 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 pts)一样高。

场景缩放模式为AspectFill。 场景和精灵 xScaleyScale = 1.0

我不明白我做错了什么。

【问题讨论】:

    标签: ios iphone swift resize sprite-kit


    【解决方案1】:

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

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

    这意味着您的 SKSpriteNode 将显示为 450pts 而不是 300pts。

    您可能想改用SKSceneScaleModeResizeFill

    【讨论】:

    • 太棒了!谢谢。我尝试更改它,但现在我在 viewController 中更改它,它有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多