多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## **数据结构(Data structures)** 在游戏中,您经常需要以精确而有序的方式存储信息。例如,您可能需要存储人员携带的物品清单,或者您可能需要存储需要访问的地点的网格。现在,为了实现它们您可以使用数组(array)结构,但是如果您想要执行更复杂的操作,比如排序数据或搜索特定项目,则需要编写大量的GML代码,这些代码执行速度慢并难以调试,真正的痛苦是每次都要把它们写一次! 为了弥补这一点,GameMaker Studio 2为您准备了六种内置的数据结构,可以通过对应功能进行访问。在这里不同类型的数据结构都有其自身的优点,具体取决于您希望存储的信息类型以及以后如何处理它们:堆栈,队列,列表,映射,优先级队列和网格。 实质上,所有的数据结构都以相同的方式工作 - 创建一个数据结构并将其索引值存储在一个变量中。然后,您可以使用此索引来引用并对其执行操作,并且可以在其他函数中调用数据结构。最后,一旦你不再需要它的时候,你需要销毁数据结构,将其从内存中删除。您可以根据需要同时使用多种结构,并且所有结构都可以存储字符串和实际值。 **注意:**与所有动态资源一样,数据结构会占用内存,因此在不再需要时总是需要摧毁它,以防止内存泄漏,从而减慢并最终导致游戏崩溃。 有关不同数据结构的信息可以在以下部分找到: * Stacks(堆栈) * Queues(队列) * list(列表) * Maps(映射) * Priority Queues(优先队列) * Grids(网格) 在你的游戏中使用数据结构之前,你还应该知道,由于四舍五入的错误,你可能会得到一个不是你所期望的结果。这可以通过使用以下函数更改DS精度来解决: * ds_set_precision 还有一个特殊的功能来检查是否存在任何给定类型的数据结构: * ds_exists 最后,您还可以将值存储在数组中。您可以从以下部分了解有关数组的更多信息: * array(数组)