ios – JSTileMap如何处理视网膜和ipad / iphone平铺贴图?

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

我有一个基本分辨率创建的.tmx文件,使用map.png作为它的图块集. .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瓷砖)

以下是我得到的结果(在模拟器上清理构建和重置内容和设置之后):

Retina iPhone – 瓷砖是错误的点
iPad – 没有显示tilemap,JSTileMap有解析错误
Retina iPad – 错误位置的瓷砖

如果我只使用普通香草map.png(48×48瓷砖):
Retina iPhone – 平铺地图显示效果不错但当然太大了
iPad – 瓷砖地图显示完美
Retina iPad – 瓷砖地图显示完美,并按比例缩放.

我知道我可以使用24×24 tile map.png,显然它会扩展所有内容.我宁愿不使用缩放的瓷砖组,因为质量会受到影响.

提前致谢.

Ë

最佳答案 我能够缩小SKTexture忽略@ 2x文件扩展名的~ipad文件扩展名.这只会在尝试为iPhone视网膜,iPad和iPad视网膜构建瓷砖贴图系统时带来更多麻烦.

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

这确实完全有效(更容易).对那些仅为视网膜iPhone构建的人来说,明智的一个词……在.tmx文件中你的瓷砖高度和宽度大小的一半,否则你将有一个很好的时间来尝试处理内容缩放.

点赞