我正在开始开发 2d 等距(平铺,roguelike)游戏,我正在集思广益,我将使用哪种数据结构来存储运行时数据,如瓷砖和实体,但我不想使用 2d 数组(如世界将是巨大的)。在这种情况下我将如何处理渲染?
问问题
1013 次
1 回答
1
尽管您可能会在https://gamedev.stackexchange.com/上获得更多成功,但我会尝试提供一些想法:
您应该创建一个Tile
类,该类可能包含该图块上的实体集合。此外,实体可能持有对其所在的图块的引用。
至于地图表示,它取决于地图将如何表示。如果您有一个固定大小的地图,您可能会使用二维数组(该数组将仅包含指向图块的链接,如果当前不需要,则可能为空),否则您可能会使用索引为图块位置的地图。然后在地图上查询您需要显示的图块。
此外,您可能希望使用一些缓存并加载围绕显示区域的一些图块。当切片位于该缓存区域之外并且您需要内存时,它们可能会从地图中删除。
于 2012-01-15T12:09:34.263 回答