我正在尝试使用SpriteKit和JSTileMap来可视化一个大地图。地图的大小是3398 x 4842。
我定义了一个TMX地图,在一层中使用大小为1699x2421的4个瓷砖,每个瓷砖匹配一个tileset。
这是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映射,但我无法用SpriteKit和JSTileMap可视化xode中的映射。加载部分的处理似乎是正确的,但我看不到任何东西:我有一个带有标签:0节点/0绘图的黑色屏幕。有没有任何可能的线索,什么可以阻止我的地图正确可视化?
发布于 2014-02-07 07:28:03
问题是图像上的@2x。这向SpriteKit表示,您的图像是按点工作的,而不是像素,并以此方式加载图像。TMX地图格式以像素为单位,而不是以点为单位,这就抛出了预期的数学。您可以通过在setSourceImage:方法中放置一个断点并查看_imageSize变量来验证这一点--当使用@2x后缀时,它被切成了一半。
从图像中删除@2x (无论是在Xcode项目中还是在TMX映射XML中),您应该会做得很好。
注意,一旦进行了这些更改,我就必须进行清理,以查看它们在iPhone模拟器中的反映。
https://stackoverflow.com/questions/21556625
复制相似问题