LibGDX Sprite / Tile渲染在对象的后面和前面

时间:2013-08-15 22:15:57

标签: rendering libgdx sprite tiled

快速事实:

  • 我正在使用Tiled作为我的Tile-editor。
  • 我正在使用LibGDX。我为一个古老的神奇宝贝风格的游戏做了一切工作。

我的问题:

我不是在创造神奇宝贝。我的精灵是60x20像素,但我只想将底部的20x20像素(我的脚)作为我的碰撞区域。

现在,拿一棵树,20x20pixels不可走路的底部:

当我从底部出来时,我希望脚上方的40像素显示在树的前面。这意味着在实际树木的前方20英尺的底部,20英寸以上。但是,当我站在树的正下方时,我希望我的玩家能够完全覆盖在树后面。

当我在没有LibGDX的情况下进行编程时(对于桌面,低端低端)我只是先将所有像素渲染到我的位置上方,然后检查是否有任何项目在我上方/下方,然后再渲染其他所有内容。

现在,我还不知道在使用OrthogonalTileMapRenderer时只渲染几个像素。

1 个答案:

答案 0 :(得分:2)

我认为没有解决方案只使用TiledMapRenderer渲染整个图层。

想象一下,你有两棵树,一棵在另一棵之上,中间有一块空间。你的角色站在这一块瓷砖上,因此在两棵树之间。他会落后于另一个人。在这种情况下,不可能以标准方式一次渲染整个图层,因为你的角色要么在两个树的前面,要么在两棵树的后面。

您仍然可以使用TilEd创建地图,但是您需要使用对象分析该特殊图层并将其转换为可以应用手动Z顺序的Entites列表(嗯,在2D空间中进行Y-Ordering)从背景到前景,并以正确的顺序单独渲染它们。