天坑~~ ,搞了一天 ,找到解决办法
tiledLayer : cc.TiledLayer
let tileSize = this.tiledLayer.getMapTileSize() ;
let _sgNode = this.tiledLayer.__sgNode ;
__sgNode.___texGrids.forEach(function (grid)
{
grid.x = Math.floor(grid.x) ;
grid.y = Math.floor(grid.y) ;
grid.width = tileSize.width ;
grid.height = tileSize.height ;
});
原因分析
_textGrids 存放了 tiled的 贴图信息(位置和大小),可是不知道什么原因,引擎解析出来的有偏差
我的tileSize 设置的是 6464 , 可以 _texGrids 里面获取的是 6363,并且x,y都为小数。
如果调用getTileAt()这个函数,引擎会拿这个参数去获取贴图资源,生成一个 sprite ,造成了实际比原来小的tile,就出现了空隙