4

我正在尝试使用SpriteKit和可视化大地图JSTileMap。地图的大小为3398 x 4842

我通过在一层中使用 4 个大小为 1699 x 2421 的图块定义了一个 TMX 地图,每个图块都匹配一个图块集。

这是tmx:

<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="2" height="2" tilewidth="1699" tileheight="2421">
 <tileset firstgid="1" name="BL" tilewidth="1699" tileheight="2421">
  <image source="new_york_map_bl@2x.jpg" width="1699" height="2421"/>
 </tileset>
 <tileset firstgid="2" name="BR" tilewidth="1699" tileheight="2421">
  <image source="new_york_map_br@2x.jpg" width="1699" height="2421"/>
 </tileset>
 <tileset firstgid="3" name="TL" tilewidth="1699" tileheight="2421">
  <image source="new_york_map_tl@2x.jpg" width="1699" height="2421"/>
 </tileset>
 <tileset firstgid="4" name="TR" tilewidth="1699" tileheight="2421">
  <image source="new_york_map_tr@2x.jpg" width="1699" height="2421"/>
 </tileset>
 <layer name="Main Layer" width="2" height="2">
  <data encoding="base64" compression="zlib">
   eJxjZmBgYAFiRiBmAmIAAIAACw==
  </data>
 </layer>
</map>

虽然我可以使用该Tiled软件查看 TMX 地图,但我无法在 xode 中使用SpriteKit和可视化地图JSTileMap。加载部分似乎得到了正确处理,但我无法想象任何东西:我有一个带有标签的黑屏:0 个节点/0 个绘图。是否有任何可能导致无法正确可视化我的地图的原因?

4

1 回答 1

3

问题是图像上的@2x。这向 SpriteKit 表明您的图像正在处理点,而不是像素,并照此加载您的图像。TMX 地图格式以像素而非点为单位工作,这会偏离预期的数学。您可以通过在方法中放置一个断点setSourceImage:并查看 _imageSize 变量来验证这一点——使用@2x 后缀时它被减半。

从您的图像中删除@2x(在您的 Xcode 项目和 TMX 映射 XML 中),您应该一切顺利。

请注意,一旦进行了这些更改,我必须进行清理才能看到它们反映在 iPhone 模拟器中。

于 2014-02-07T07:28:03.740 回答