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

use*_*506 2 rendering sprite libgdx tiled

要闻速览:

\n\n
    \n
  • 我使用 Tiled 作为我的图块编辑器。
  • \n
  • 我正在使用 LibGDX。我得到了适合旧 Pok\xc3\xa9mon 风格游戏的一切。
  • \n
\n\n

我的问题:

\n\n

我没有创建 Pok\xc3\xa9mon。我的精灵大小为 60x20 像素,但我只希望底部 20x20 像素(我的脚)作为碰撞区域。

\n\n

现在,拿一棵树,其底部为 20x20 像素,无法行走:

\n\n

当我从底部过来时,我希望脚上方 40 像素显示在树的前面。这意味着底部前方 20 像素,实际树木前方上方 20 像素。但是,当我站在树底部上方时,我希望我的玩家完全被树后面覆盖。

\n\n

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

\n\n

现在,我不知道当我使用OrthogonalTileMapRenderer.

\n

noo*_*one 5

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

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

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