JSTileMap如何处理视网膜和ipad / iphone瓷砖地图?

我已经使用Tiled创build了一个基本的地图。 我正在使用JSpileMap和SpriteKit来获取场景中的地图。 据我所知,JSTileMap(而不是SKTexture)自动处理视网膜和不同的设备。 到目前为止,我还没有取得好成绩,这是我的设置:

我有一个.tmx文件,使用map.png在基本分辨率下创build,因为它是瓦片集。 .tmx出现在项目中,但我故意没有添加map.png(我不想支持非视网膜iPhone)。

在这个项目中,我只添加了以下的png:map@2x~iphone.png(视网膜iPhone,使用48×48的贴图)map〜ipad.png(非视网膜的iPad,使用48×48的贴图)map@2x~ipad.png(视网膜iPad,使用96×96瓷砖)

这里是我得到的结果(清理版本和重置模拟器上的内容和设置后):

视网膜iPhone – 瓷砖是错误的地方
iPad – 没有显示地图,JSTileMapparsing错误
视网膜iPad – 瓷砖在错误的地方

如果我只用一个普通的香草map.png(用48×48的方块):
视网膜iPhone – 瓷砖地图显示,但太大,当然
iPad – 瓷砖地图显示完美
视网膜iPad – 瓷砖地图显示完美,并缩放。

我知道我可以使用一个24×24的tile.png,显然它会扩展一切。 我宁愿不使用缩放的瓷砖集,因为质量会受到影响。

提前致谢。

Ë

我能够缩小SKTexture忽略@ 2x文件扩展名的〜ipad文件扩展名。 这只会在试图为iPhone视网膜,iPad和iPad视网膜构build瓷砖地图系统时造成更多的麻烦。

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

这完全工作(更容易)。 对于那些只为视网膜iPhonebuild造的人来说,明智的一句话是… .tmx文件中一半的高度和宽度,否则你将会花费很大的时间来处理内容缩放。

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

在这种情况下,您不能使用@ 2x后缀图像,而不提供没有@ 2x后缀的相同图像。 所以解决scheme可能就像提供不带@ 2x后缀的Retina iPhone图像一样简单。 你可能甚至不需要iPhone的后缀,因为其他两种types的资产只能被iPad设备使用。

这是基于对不同问题的回答。 我没有亲自validation它。