[LayaAir 1.0]TileMap有明显的bug

@laya_Aaron
 重复步骤:

1、使用Tiled编辑器做一个等距视角(isometric)的,尺寸为4x4的地图,
2、在打开该地图的情况下。Tiled编辑器中,选择图块面板,新建一个图块:图像选择Tiled/examples下的isometric_grass_and_water.png;块宽度填64,块高度64。然后就可以点击完成。
3、在图块面板上,刚才的图块应该都显示出来了,选择图块集左上角的第一个,也就是全是草的那个图块,在4x4的地图刷上该图块,16个格子全部刷该图块。为了让图块跟编辑器的网格对齐,我们可以先选择Edit tileset这个图标(“新图块”按钮的右边的第4个,有个扳手的图标),相应的面板在前台后,菜单 “Tile集 | Tile集属性”,在打开的面板上,找到“绘制偏移”,Y值填16.
4、保存地图。
5、菜单中另存为一个json文件,改动json文件中的图集的路径,我们这里选择直接去除文件的路径,而只剩下文件名和它的后缀本身。
6、拷贝该json文件和上面提到的png图,一共2个文件到laya工程的bin目录下,然后写代码测试。

发生bug,如下图:

TIM图片20190102150904.png

 
 
说明:
 
上图开启了grid的debug模式,所以彩色的线是引擎画的。bug是右上角的grid里面的一根斜的线,和右下角里的两根斜的线。这个的原因是我们选择的图的边缘在视觉上并不是一个像素的,而引擎绘制这些图的时候的顺序没有按照isometric应该用的顺序来,所以导致后面绘制的物体挡在了前面绘制的物体的前面。
 
该bug尝试了2.0,依旧存在。
 
该bug尝试了cocoscreator引擎,cocoscreator不会发生这个bug。
 
附上测试的代码(javascript):
var WebGL = laya.webgl.WebGL;
Laya.init(1920, 1080, WebGL);

function _OnMapCreate() {
console.log("map create ...");
}

var viewRect = new Laya.Rectangle(0, 0, Laya.stage.width, Laya.stage.height);

var tMap = new Laya.TiledMap();
tMap.createMap("res/isometric_grass_and_water.json", viewRect, Laya.Handler.create(this, this._OnMapCreate), null, new Laya.Point(2 * 64, 2 * 32));
已邀请:

要回复问题请先

商务合作
商务合作