level 9
参考博客:(原链接做了访问保护,因此这里给出github后缀):/NichtsHsu/gm8_tutorial
2024年04月06日 03点04分

,可以看出,我们仍然是需要进行一个文件的读写,先打开dat文档(没有会自动生成),然后创建一个map结构,注意喔,map实际上是类似于数组或者变量一样的东西,他本质是这个obj的本地单位,因此使用with时千万注意,之后的任务就非常简单了,使用ds_map_add函数,分别填入map名字、键、数值就好,这个键就可以理解为花名册上的年级姓名,作为一个配对的标准,你的名字叫小明,那么我之后只需要搜索名字这个键就可以得到小明这个字符串了。
,看不懂?看不懂就对了
在这个例子中,我们使用了两个obj,gm用来控制存档读档,object0用来标识。
其中,endless是我们的section,用来引领全文,举个栗子,我在做的是类植物大战僵尸游戏,那么我就可以在endless结构下存放无尽模式的数据,在normal结构下存放冒险模式的,而结构下面则是类似于配对的东西,一一对应且很方便代码修改删除,ini的好处就是非常非常直观,调试的时候很方便看出错误,矛盾点在于他是明文数据,玩家很容易就修改了,但我很喜欢这一点,对于gm的小游戏来说,修改和破解也挺有意思的,激起了玩家的探索心(?)
在这里我们仔细讲一讲ini,这种简明直观的数据结构很适合新手学习调试,在这个例子中,我们使用了ini_open()打开/新建了同路径下的ini文件,使用ini_write_string(real)来写入字符串(或真值),在粉色的框中,我们使用该obj(saving-gm)来遍历了目标obj(友方单位),for循环会使该循环不重复地执行n次(n等于友方单位数目),每一次进入for循环,我们使用with来处理instance_find(obj,id)获得一个友方单位,使用for中的i来保证不重复。进入with结构后,我们相当于在该友方单位中写代码(我们称为小明i号),因此在调用变量时,千万注意区分本地变量和全局变量,比如图中的saving_gm.i,使用了with后,saving_gm的i这个变量就是不存在于小明1号中的了