SKTileMapNode 像素到像素对齐

SKTileMapNode Pixel to Pixel Aligning

我正在使用 Apple 的新 SKTileMapNode 开发一个瓦片地图游戏。我的图块上的像素与 phone 显示屏上的像素不匹配。我的缩放模式设置为 .resizeFill。我的图块尺寸正确标记为 64x64,并且每个图块的纹理图像大小正确。

我正在使用的相机是所附图像中灰色圆圈的子级。我相信相机会创建一个像素到像素的视图,显示正在使用的屏幕尺寸并匹配分辨率,但我不确定我是否可以相信这一点。我怎样才能让我的像素正确对齐以避免这种情况。

事实证明,SpriteKit 的 SKTileMapNode 确实喜欢针对所有分辨率优化资产。这完全解决了我的像素对齐问题。虽然这看起来很明显,但我最初添加 @1x 文件是为了使用优化的纹理图集。需要更多研究才能发现如何向纹理图集添加不同的分辨率。

由于它不同于普通图集(将“.atlas”附加到图像文件夹),因此我将在此处描述如何操作

转到assets.xcassets 文件夹并单击"New Sprite Atlas." 在这里拖入所有@2x 和@3x 图像。删除 [asset-name].atlas 文件夹(如果您之前有),因为它本身不支持不同的分辨率。

从这里开始,可以像在代码中访问原始 [asset-name].atlas 文件夹一样访问图集。