如何在同一层上绘制或渲染两个对象/纹理libgdx(android)

时间:2014-03-26 06:09:27

标签: android libgdx

我正在开发一个游戏,我希望在同一层中显示两个对象,但现在正在发生的事情是我在渲染方法中首先编写的那个后面其他对象。我在渲染方法中最后绘制的对象在屏幕上呈现时显示 以上。请提供一些代码或建议以保持对象在同一层中。例如:

       batch.draw(object1,object1.x,object2.y);
       batch.draw(object2,object2.x,object2.y);  

截至目前,对象2被绘制在对象之上。我希望它们位于同一层。 Object1和Object2是纹理。enter image description here

正如你在上面的图片中看到的那样,白蛋落在捕捉那些蛋的男人后面

谢谢

1 个答案:

答案 0 :(得分:0)

您将始终必须将一个图像渲染到另一个图像上方。正如您已经发现的那样,在渲染循环中首先出现的那些将被引入后来的那些。

如果你想坚持直接渲染纹理,你必须以某种方式对绘图顺序进行排序。

另一种方法是使用scene2D ... Scene2D提供Stage类,可以让你添加图像。这里的方式相同,首先添加的项目将首先绘制,其他项目将在上面绘制。

幸运的是,您可以通过更改每个项目的z值来快速更改scene2d中的顺序。具有较高z值的项目将在其他项目前绘制。通过这种方式,您可以更轻松地重新排序绘制内容的方式。

如图所示,您正试图在篮子里收集鸡蛋,因此您必须将鸡肉和篮子分成两个不同的图像。首先绘制鸡(当然是在背景之后),然后是鸡蛋。在绘制顺序中最后一个你需要渲染你的篮子。这样鸡蛋会在鸡的前面落下,但会在篮子后面呈现,所以看起来它们正落在它的后面。

希望有帮助...