微信小游戏真机载入TiledMap失败

我也碰到了相同的问题,模拟器可以,真机上加载tmx文件出错,求官方解决

请问你碰到这个问题使用的引擎是cocos2d-js还是cocosCreator?

以前遇到过类似的问题是因为图块资源tsx文件被微信开发者工具忽略了没有上传

问题定位:libs/xmldom/dom.js的copy方法使用的是for in,在LiveNodeList._updateLiveList中使用了该方法拷贝Array,数组元素都没有拷贝过去,最终结果是是赋值了length,但list中都是undefined。

解决方案:修改文件/Applications/CocosCreator.app/Contents/Resources/static/build-templates/wx/libs/xmldom/dom.js中第127行copy(ls,list)这一句,改用for来拷贝
for(var i = 0; i < ls.length; i++) {
list[i] = ls[i];
}

3赞

按照你的方法修改后已经可以真机上跑tiled 测试了。非常感谢。强行解释一波,对于windows的修改路径就是cocos creator 安装路径/Resources/static/build-templates/wx/libs/xmldom/dom.js

1赞

那请问你这个图块资源被忽略上传解决了没有?

解决了,创建图块的时候有一个选项是“嵌入地图”,把这个勾上就不会额外生成tsx文件了

我这样改了之后微信预览真机报异常。一个图片资源没有上传“忽略上传的文件”。请问你们有这个问题吗?

是不是资源文件夹下最后一张图会忽略上传?

这个问题现在最新的1.9.3官方给解决了吗?之前因为这个问题,放弃了一个项目。现在新项目又得用tiled map了,逃不过啊。。。。
@jare

不确定是tilemap组件导致的问题,麻烦上传下demo,我分析一下,应该是可以解决的问题。

不用另外做demo了,cocossample工程里面的tilemap例子就可以,注意是小游戏环境真机测试不行,模拟器没问题
@huanxinyin

我验证一下!

我这边对tilemap的Puzzle示例做了测试,正常运行,并没有报错,不清楚你的问题。

那就是说最新版本已经修复了

现在小游戏真机这边,如果是内嵌了tileset 是可以用的,但是使用独立的tsx文件是不行的,
虽然可以凑合用内嵌的,但是我们有很多地图都是共享了tileset,而且tileset上面有很多tile自定义属性,这样tileset资源会比较大,每个地图都内嵌一份容量就太浪费了。。
请问有可能给改下这个问题么?
谢谢!
@huanxinyin

这是因为微信开发者工具上传的时候把tsx文件给忽略了吧,和引擎没啥关系

为啥啊?tsx有啥特殊的吗?

没啥特殊的,但是微信开发者工具上传文件类型是白名单制的,他们就是没把tsx放进去呗。。谁知道为啥

那如果tsx资源不到包里上传,而是放到服务器下载,就可以了吗?