我正在开始开发 2d 等距(平铺、类 Rogue)游戏,并且正在集思广益,我将使用哪种数据结构来存储运行时数据(例如平铺和实体),但我不想使用 2d数组(因为世界会很大)。在这种情况下我将如何处理渲染?
最佳答案
尽管您可能会更成功地询问 https://gamedev.stackexchange.com/我会尝试提供一些想法:
您应该创建一个Tile
类,该类可能包含该图 block 上的实体集合。此外,实体可能会保存对其所在图 block 的引用。
至于 map 表示,这取决于 map 的表示方式。如果您有固定大小的 map ,则可以使用 2D 数组(该数组仅包含指向图 block 的链接,如果当前不需要,则该链接可能为空),否则您可以使用索引为图 block 位置的 map 。然后在 map 上查询您需要显示的图 block 。
此外,您可能需要使用一些缓存并加载显示区域周围的一些图 block 。当图 block 位于缓存区域之外并且您需要内存时,它们可能会从 map 中删除。
关于java - 等距游戏数据结构和渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8869439/