DS Maps

DS 映射数据结构可让您存储对,这使其成为一种非常有用的数据结构。

例如,游戏中的角色可以拥有一定数量的不同物品 ( ),并且对于每个单独的物品,他可以拥有一定数量的物品 ( ),就像在 RPG 中一样,您可以拥有 10 种生命药水、5 种法力药水和 100 金币。地图将这些对全部保存在一个地方。您可以将对添加到映射中,搜索与某些键对应的值并使用一些简单的函数。

然而,在使用地图之前,您应该了解一些有关地图的知识!地图 以任何 (可识别的) 方式排序,这意味着要找到某个键​​,您可能必须遍历整个过程 (这 非常 慢)。也无法保存两个相同的键,也无法为一个键分配两个值。

注意 推荐使用结构而不是DS 映射,因为它们具有相似的功能,更易于使用,并且会自动进行垃圾回收。

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

提示 键不限于字符串,可以是任何类型,包括 结构体

除了下面列出的特定函数外,您还可以使用表达式(称为访问器)来添加或修改DS映射的内容。此存取器类似于1D阵列,具有以下语法:

map_index[? key]

您可以从访问器的GML 概述页面中找到更多信息和示例。

Function Reference

General

序列化

加载与保存

这些函数将混淆地图并使用文件格式将其存储在目标平台上的安全位置,这意味着最终文件无法在设备之间传输:

JSON

注意 虽然这些函数允许您在映射中添加列表和映射,但它们对于JSON以外的任何内容都是无用的,并且如果将嵌套映射和列表写入磁盘或以任何其他方式进行访问,将无法正确读取。