列表数据结构

列表是以特定顺序存储一些值的集合.

列表是以某种顺序添加并存储信息的一种数据结构(类似一元数组)。这是一种十分灵活的数据结构,允许你在尾部或列表中间指定插入一个值,而且你还可以对列表内的值随机、升序或降序等多种方式进行排序。

当访问一个列表数据结构时,你应该使用 整数值 的索引值来获取其中的值,如果你提供的不是整数索引,则GameMaker Studio 2会自动向下取整(译者注:如10.5会变成10)。如果这种自动取整不是你想要的效果,请务必检查你传递的索引参数以避免这种情况发生。
注意: 跟所有动态资源相同,数据结构会占用设备内存,因此在不再使用时应当将其销毁以释放内存,否则可能会造成内存泄漏,从而影响游戏运行速度和效率,最后导致游戏报错崩溃。

在使用列表时有以下一些方法可以使用:

  1. ds_list_create
  2. ds_list_destroy
  3. ds_list_clear
  4. ds_list_empty
  5. ds_list_size
  6. ds_list_add
  7. ds_list_set
  8. ds_list_delete
  9. ds_list_find_index
  10. ds_list_find_value
  11. ds_list_insert
  12. ds_list_replace
  13. ds_list_shuffle
  14. ds_list_sort
  15. ds_list_copy
  16. ds_list_read
  17. ds_list_write

列表也能用于存储其它列表或映射表,但只能与 json_encode 方法联合使用。这需要你首先“标记(flag/mark)”出列表中的条目,以便与确保可以进行正确的编码来使用以下方法:

  1. ds_list_mark_as_list
  2. ds_list_mark_as_map

除了这些特定功能以外,你还可以使用通配符(或叫访问器)来添加或修改列表中的内容,通配符语法类似一元数组中的方法:. 访问器看起来就像一维数组,语法如下

list_index[| index]

你还可以找到更多相关内容,比如你可以在GML总览页查看更多关于 Accessors的介绍.

注意:如果你需要检查数据结构是否存在,你可以使用ds_exists()函数。


上一页: Data Structures
下一页: DS Maps
© Copyright YoYo Games Ltd. 2018 All Rights Reserved