等距引擎绘图问题

San*_*ser 5 javascript game-engine isometric

我正在尝试用js(canvas)编写游戏引擎.到现在为止还挺好.但我有一个问题,我的世界是菱形的,我从上到下渲染瓷砖.

问题是当我的瓷砖大于1个瓷砖(例如2x2)时会发生这种情况:

示例渲染

房子在瓷砖(2,1)上定义.左边的岩石放在(1,0)

首先渲染图块(1,0),然后下一个图块是(2,1),因为它位于同一行和右侧.

你怎么解决这个问题?

Mar*_*rty 4

您应该能够通过将图形分解为更小的部分来避免该问题 - 网格上的每个图块一个部分。一个好的思考方法是:如果您可以从正上方查看网格,则每个精灵不应溢出它们分配到的单元格的边缘。

例如,下面的这个单元格可能应该只包含较小立方体所示的房子的前部:

在此输入图像描述

在某些时候,您可能还需要对同一单元中的多个精灵进行微观管理,但在较小的空间中这是相同的概念。