无法使用SpriteKit和JSTileMap查看TMX Map

时间:2014-02-04 15:33:16

标签: sprite-kit jstilemap

我正在尝试使用SpriteKitJSTileMap来显示大型地图。地图的大小为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地图,但我无法使用SpriteKitJSTileMap在xode中显示地图。加载部分似乎处理正确,但我无法想象任何东西:我有一个带标签的黑屏:0个节点/ 0个绘图。有什么可能导致无法正确显示我的地图吗?

1 个答案:

答案 0 :(得分:3)

问题是图像上的@ 2x。这向SpriteKit指示您的图像正在处理点,而不是像素,并加载图像。 TMX地图格式以像素为单位工作,而不是点,这会抛出预期的数学运算。您可以通过在setSourceImage:方法中放置一个断点并查看_imageSize变量来验证这一点 - 当使用@ 2x后缀时,它会减少一半。

从你的图像中删除@ 2x(在Xcode项目和TMX地图XML中),你应该很高兴。

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