【问题标题】:How does JSTileMap handle retina and ipad/iphone tile maps?JSTileMap 如何处理视网膜和 ipad/iphone 平铺地图?
【发布时间】:2014-01-26 22:00:18
【问题描述】:

我已经使用 Tiled 创建了一个基本的 tilemap。我正在使用 JSTileMap 和 SpriteKit 来获取场景中的地图。据我了解,JSTileMap(而不是 SKTexture)会自动处理视网膜和不同的设备。到目前为止我还没有产生好的结果,这是我的设置:

我有一个使用 map.png 以基本分辨率创建的 .tmx 文件,因为它是平铺集。 .tmx 存在于项目中,但我故意没有添加 map.png(我不想支持非视网膜 iPhone)。

在项目中,我只添加了以下 .png: map@2x~iphone.png(视网膜 iPhone,使用 48x48 瓷砖) map~ipad.png(非视网膜 iPad,使用 48x48 瓷砖) map@2x~ipad.png(视网膜 iPad,使用 96x96 瓦片)

这是我得到的结果(在干净的构建和重置模拟器上的内容和设置之后):

Retina iPhone - 瓷砖是错误的地方
iPad - 没有显示瓷砖地图,JSTileMap 有解析错误
Retina iPad - 错误位置的图块

如果我只使用普通的原版 map.png(带有 48x48 瓷砖):
Retina iPhone - 平铺地图显示良好,但当然太大
iPad - 平铺地图完美显示
Retina iPad - 平铺地图完美显示并按比例缩放。

我知道我可以只使用 24x24 平铺 map.png,显然它会缩放所有内容。我宁愿不使用按比例缩放的图块集,因为质量会受到影响。

提前致谢。

E

【问题讨论】:

    标签: ios iphone ipad retina-display sprite-kit


    【解决方案1】:

    我能够缩小 SKTexture 忽略 @2x 文件扩展名的 ~ipad 文件扩展名的范围。这只会在尝试为 iPhone Retina、iPad 和 iPad Retina 构建平铺地图系统时带来更多麻烦。

    我决定一起避免这个问题。我现在没有在我的项目中使用通用应用程序。我有一个 iPhone 项目和一个单独的 iPad 项目。这样,我使用 Retina 所需要做的就是每个项目中的 @2x 文件扩展名。

    这确实完全有效(容易得多)。对那些只为视网膜 iPhone 构建的明智者说一句话...... .tmx 文件中的平铺高度和宽度大小的一半,否则您将有很大的时间尝试处理内容缩放。

    【讨论】:

      【解决方案2】:

      由于您使用的是 Sprite Kit 并且需要 iOS 7,因此实际上没有非 Retina iPhone 可以定位。

      在这种情况下,如果不提供没有@2x 后缀的相同图像,就不能使用带有@2x 后缀的图像。因此,解决方案可能就像提供没有@2x 后缀的 Retina iPhone 图像一样简单。您甚至可能不需要 ~iphone 后缀,因为其他两种类型的资产只会被 iPad 设备使用。

      这是基于对另一个问题的回答。我没有亲自验证过。

      【讨论】:

      • 首先,感谢 Steffen 的关注。是的,我几乎尝试了所有排列以寻找“正确”的技巧。我更多的是寻找或尝试弄清楚为什么它仍然不正确。在您建议的修复中,所有构建都使用默认平铺地图(例如 map.png)并忽略 iPad 和 iPad 视网膜副本。我已经通过在每个瓷砖组上放置一个标记来验证正在使用哪个瓷砖组。它还将 iPhone 视网膜上的默认值缩放到我猜测的 2 倍,因此只有大约一半的地图可见。再次感谢。
      • 您是否考虑过场景的缩放模式可能会影响这种行为?
      • 是的,但仍然没有解释为什么 JSTileMap(或 SKTexture?)没有使用 @2x~ipad 文件扩展名,唯一加载的地图是默认的 map.png。
      • 尝试用图像加载一个简单的 SKTexture 并检查纹理的大小。这样你就知道问题出在 tilemap 还是 SKTexture。
      • 我决定一起避免这个问题。将使用下面的答案来帮助遇到类似问题的人。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多