【发布时间】:2014-12-09 02:27:48
【问题描述】:
使用 SpriteKit 制作一个仅限肖像的游戏,并将我的图像资源放入 Images.xcassets。这是针对 iPhone 的,所以我的图片资源是这样设置的:
1x, 2x, Retina 4 2x, 3x
例如,在一个图像资源下,一个 2x,我有一个 640x640 png,这在 iPhone 4/4s、5/5s 上非常适合,但在 6(也可以缩放 @ 2x)上它不适合,因为 6屏幕稍宽 @ 750 像素(或 375 点)。所以我想出了以下公式,我可以将它传递给[mySprite setScale:],用于添加到场景中的每个精灵。
CGFloat scale = screenPointWidth / (screenScale * 160)
screenPointWidth = [[UIScreen mainScreen] bounds].size.width 和 screenScale = [[UIScreen mainScreen] scale] 的位置。 160 指的是基本的 1x 像素宽度值(或 320/2)。这将返回一个规模多人游戏。
在这款多人游戏中,我应用了 640x640 的图像比例,并完美地适合 750 宽的屏幕。
我的问题:有没有更好的方法来做到这一点,或者我做得对吗?我应该使用通用缩放设置,还是应该根据我的公式缩放每个精灵和精灵位置?或者,我是否应该不使用Image.xcassets,而是为特定的屏幕分辨率创建单独的.atlas'?我应该关心上采样和下采样,还是由 iPhone 6/6+ 本身自动处理?
参考:http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
【问题讨论】: