Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Slick2D-等轴测贴图渲染错误_Java_Map_Tile_Slick2d_Isometric - Fatal编程技术网

Java Slick2D-等轴测贴图渲染错误

Java Slick2D-等轴测贴图渲染错误,java,map,tile,slick2d,isometric,Java,Map,Tile,Slick2d,Isometric,我用程序“平铺”制作了一张等距图,并将其加载到我的代码中。 我有两层瓷砖: 1.背景层(草) 2.对象层(本例中为冰箱) 冰箱渲染不正确。正如你在这里看到的(左边应该是怎样的,右边是怎样的) 图由两部分组成,上部和下部,如图所示: 所以我的第一个想法是,我不能在瓷砖上显示瓷砖。这就解释了为什么冰箱左边和右边的草砖在冰箱前面。但这只适用于上半部分。下部正确显示,并且“覆盖”草地瓷砖。那为什么会这样呢 好吧,我知道了。 可以逐个渲染地图的图层 map.render(x, y); 一次渲染所有层

我用程序“平铺”制作了一张等距图,并将其加载到我的代码中。 我有两层瓷砖: 1.背景层(草) 2.对象层(本例中为冰箱) 冰箱渲染不正确。正如你在这里看到的(左边应该是怎样的,右边是怎样的)

图由两部分组成,上部和下部,如图所示:

所以我的第一个想法是,我不能在瓷砖上显示瓷砖。这就解释了为什么冰箱左边和右边的草砖在冰箱前面。但这只适用于上半部分。下部正确显示,并且“覆盖”草地瓷砖。那为什么会这样呢

好吧,我知道了。 可以逐个渲染地图的图层

map.render(x, y);
一次渲染所有层。那么发生的事情就是@Marco13在我的问题下所评论的。 要避免这种情况,请使用此选项

map.render(x, y, layer);
如果你有两个像我一样的层次,比如说,你只需要:

map.render(x, y, 1);
map.render(x, y, 2);

然后一切看起来都很好:)

我不熟悉libGDX,您也没有告诉我它是如何实现的,但是从图像上看,很明显瓷砖是从后面(最上面)到前面(最下面)渲染的,不管它们的“层”,所以它首先绘制冰箱的顶部,然后在冰箱顶部涂上左/右草砖,然后在冰箱底部涂上油漆。这就解释了。。。我将对此做一些研究。