[]TiledMap,ignore图块的bug
TiledMap源码中,onJsonComplete方法里会解析所有图块信息,里面会读取ignore属性,如果为true,则忽略该图块的加载。
后续会根据图块加载所有纹理。
但由于加载好的纹理是push进数组。会导致MapLayer的drawTileTexture方法在读取显示纹理时,调用TiledMap.getTexture方法传入的index和加载好的纹理所在的数组位置对不上。取出了别的纹理。
例如,正常不忽略图块的情况下,加载好的的纹理数组是[x,y,z]。如果忽略了x,则变成[y,z]。后续取纹理时,本来想取y得变成是取了z。
下图是ignore的部分的源码。
下图是getTexture的方法
这里是通过data的数据获取纹理的地方
总的来说是ignore属性目前不能使用,使用会导致读取纹理错误。不确定能否表达清楚,有疑问欢迎补充
后续会根据图块加载所有纹理。
但由于加载好的纹理是push进数组。会导致MapLayer的drawTileTexture方法在读取显示纹理时,调用TiledMap.getTexture方法传入的index和加载好的纹理所在的数组位置对不上。取出了别的纹理。
例如,正常不忽略图块的情况下,加载好的的纹理数组是[x,y,z]。如果忽略了x,则变成[y,z]。后续取纹理时,本来想取y得变成是取了z。
下图是ignore的部分的源码。
下图是getTexture的方法
这里是通过data的数据获取纹理的地方
总的来说是ignore属性目前不能使用,使用会导致读取纹理错误。不确定能否表达清楚,有疑问欢迎补充
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
Aar0n
赞同来自:
如果不是这样的情况,能否提供demo查看一下实际情况