我正在用纯 Java 开发一个 2d 自上而下的游戏,直到现在我已经有了一个噪声映射系统,它可以像 Minecraft 一样与大块瓷砖(和实体)一起工作。
我存储图块的方式是创建一个int[s * s]
数组,其中s
块的一侧具有的大小(以图块为单位)。然后,我有一个 Tiles 的静态数组,其中包含游戏中每个可能的 Tile,并用整数索引。这些是存储在int[s * s]
每个块中的整数。现在,我希望能够覆盖图块,例如不可见的生成图块、墙壁、树木和过渡图块(例如当草变成沙子时:沙子上应该有草的边界,这将是一个新图块)。
问题是块的每个坐标中只能存储一个整数。另一种方法是将瓦片的实际实例放在块内,并使覆盖的瓦片指向它们正下方的瓦片(如堆栈),但我认为这是一种不好的方法。我测试的另一种方法是制作一组瓷砖列表,这也很糟糕。
哪个是实现这一目标的好方法?