我为我的spritekit游戏桥接了JS TileMap。我在我的项目中放了一个tmx文件,我试图初始化一个JSTileMap对象
let map = JSTileMap(fileNamed: "level 1-1.tmx")
我收到此错误
2014-11-15 17:43:03.428 MyGame [5726:1901295] *由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' * - [NSKeyedUnarchiver initForReadingWithData:]:难以理解的存档(0x3c,0x3f,0x78,0x6d,0x6c,0x20,0x76,0x65)' ***第一次抛出调用堆栈: (
可能是因为它找不到文件吗?我注意到如果我将文件名更改为不存在的东西我会得到相同的错误..
以下是我的tmx文件的内容
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="1000" height="800" tilewidth="1" tileheight="1">
<tileset firstgid="1" name="enemies" tilewidth="80" tileheight="75">
<tile id="0">
<properties>
<property name="name" value="EnemyA"/>
</properties>
<image width="66" height="75" source="../Atlases/iPhone/enemyA.atlas/enemy@2x.png"/>
</tile>
<tile id="1">
<image width="65" height="67" source="../Atlases/iPhone/enemyB.atlas/enemy@2x.png"/>
</tile>
<tile id="2">
<properties>
<property name="name" value="EnemyC"/>
</properties>
<image width="60" height="60" source="../Atlases/iPhone/enemyC.atlas/enemy@2x.png"/>
</tile>
<tile id="3">
<image width="61" height="65" source="../Atlases/iPhone/enemyD.atlas/enemy@2x.png"/>
</tile>
<tile id="4">
<image width="74" height="58" source="../Atlases/iPhone/enemyE.atlas/enemy@2x.png"/>
</tile>
<tile id="5">
<properties>
<property name="name" value="EnemyF"/>
</properties>
<image width="80" height="73" source="../Atlases/iPhone/enemyF.atlas/enemy@2x.png"/>
</tile>
</tileset>
<objectgroup color="#000000" name="Object Layer 1">
<object name="EnemyA" type="enemy" gid="1" x="137" y="489"/>
<object name="EnemyC" type="enemy" gid="6" x="468" y="454"/>
<object name="EnemyB" type="enemy" gid="3" x="310" y="321"/>
</objectgroup>
</map>
我已经尝试将其编辑为公正,但仍然会抛出该错误。我确保包含libz.dylib
我做错了什么?
答案 0 :(得分:1)
我使用了错误的init方法
应该是
let map = JSTileMap(named: "level 1-1.tmx")
答案 1 :(得分:0)
尝试从图像文件源中删除@ 2 ..然后再次运行它。我认为你不能在平铺中使用@ 2。同时从你的tmx名称中删除空格。