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