Data Structures

在游戏中,您经常需要以精确且有序的方式存储信息。例如,您可能需要存储一个人携带的物品列表,或者您可能想要存储仍需要访问的地点的网格。

GameMaker 具有许多内置的 数据结构 ,可以通过专用函数进行访问。有六种不同类型的数据结构可用,每一种都有自己的优点,具体取决于您要存储的信息类型以及以后希望如何操作它:堆栈、队列、列表、映射、优先级队列和网格。

注意 建议在 DS 列表和映射上使用 数组结构 ,因为它们现在具有类似的功能,更易于使用,并且会自动进行垃圾收集。

本质上,所有数据结构都以相同的方式工作 - 您创建一个数据结构并将其引用存储在变量中。然后,您可以使用此引用在可以对其执行操作的所有进一步函数调用中使用该数据结构。最后,完成后,您再次销毁数据结构以将其从内存中删除。您可以根据需要同时使用任意数量的结构,并且所有结构都可以存储任何可用的 数据类型

注意 与所有动态资源一样,数据结构也会占用内存,因此在不再需要时应 始终 销毁,以防止内存泄漏,否则会减慢游戏速度并最终崩溃。

有关不同数据结构的信息,请参阅以下各节:

 

在游戏中使用数据结构之前,您还应该注意,在某些时刻,由于舍入错误,您可能会得到不符合预期的结果。这可以通过使用以下函数更改D的精度来解决:

 

还有一个特殊的函数来检查任何给定类型的数据结构是否存在: