[LayaAir3]Laya旧版本的TiledMap如何隐藏某一层级的格子贴图

我使用的是第三方的TiledMap,现在就是想做一个小地图的迷雾解锁功能,让我讲画出来的迷雾解锁掉,希望能动态设置迷雾层的某一个格子贴图为空,demo代码如下,运行scene场景,点击屏幕就会响应代码:
private onMouseClick(event:Laya.Event):void{
//获取点击位置的地图坐标
const uiPosX = Math.abs(this.tMap.viewPortX) + event.stageX / this.tMap.scale;
const uiPosY = Math.abs(this.tMap.viewPortY) + event.stageY / this.tMap.scale;
//将地图坐标转换为地图格子坐标
const gridX = Math.floor(uiPosX / this.tMap.tileWidth);
const gridY = Math.floor(uiPosY / this.tMap.tileHeight);
console.log("点击地图格子坐标:" + gridX + "," + gridY);
const tileLayer = this.tMap.getLayerByName("Ground") as Laya.MapLayer;
const gridSprite:Laya.GridSprite = tileLayer.getDrawSprite(gridX, gridY);
tileLayer.drawTileTexture(gridSprite,gridX+ 1,gridY + 1);
}
 
下面这个代码是隐藏的,麻烦你替换下,我测试同样不起作用:
private onMouseClick(event:Laya.Event):void{
//获取点击位置的地图坐标
const uiPosX = Math.abs(this.tMap.viewPortX) + event.stageX / this.tMap.scale;
const uiPosY = Math.abs(this.tMap.viewPortY) + event.stageY / this.tMap.scale;
//将地图坐标转换为地图格子坐标
const gridX = Math.floor(uiPosX / this.tMap.tileWidth);
const gridY = Math.floor(uiPosY / this.tMap.tileHeight);
console.log("点击地图格子坐标:" + gridX + "," + gridY);
const tileLayer = this.tMap.getLayerByName("Ground") as Laya.MapLayer;
const gridSprite:Laya.GridSprite = tileLayer.getDrawSprite(gridX, gridY);
// tileLayer.drawTileTexture(gridSprite,gridX+ 1,gridY + 1);
gridSprite.hide();
}
已邀请:

要回复问题请先

商务合作
商务合作