【发布时间】:2012-05-14 22:08:57
【问题描述】:
在绘制 2D 图形时,如何处理帧中图片的深度?例如,地面深度为 -1,玩家深度为 0?
还有一个问题,我如何实现这种外观?当我说实现时,我的意思只是理论上的实现方式,而不是实际的源代码,但源代码可以提供帮助。
我的游戏已经是基于 Tile 的,它已经准备好以等距绘制。我在游戏的引擎部分有 x y 和 z 坐标。我读到您只需要将其翻译成 x 和 y 以进行等距绘图,但我不知道如何或为什么要这样做。
这是我现在的游戏图片。硬币是玩家,方块是棋子。
我的 Tiles 存储在数组中的最后一件事,即 Tile[] tileList。这是一种有效的存储方式吗?因为我想要从我的游戏中获得最好的表现。
非常感谢。
【问题讨论】:
-
深度是通过先绘制地砖然后绘制角色来实现的(目前)。您将制作平铺图像,使其一开始是等距的,例如these tiles。最后,对于屏幕上的 1 行 iso 磁贴,它拥有
x + y == row(在 1 种可能的表示中);所以第 3 行 (row == 2) 将有瓷砖(2,0)、(1,1)和(0,2)。 -
数组非常节省内存。 Java 显然不擅长在其中进行查找,但据我所知,数组的每个替代方案(如 ArrayList)都是一个或多个数组的精美封装。这实际上取决于您的 Tile 类拥有哪些数据来说明是否可以改进。比如说,如果它只保留瓷砖的颜色,你可以只创建一个 int 数组。但这样的事情真的取决于你的实施和要求。
-
谢谢!这对我帮助很大!
标签: java user-interface 2d depth isometric