这个时期的游戏往往有类似快速通关的途径,许多游戏都有秘密的跳关区域,让你直接跳到一个更高级的关卡,这样你就可以避免通过10个小时的游戏时间,才能到达那关。
时代已经变了,现在的游戏如果没有提供一个保存功能,那么就没有人会玩它。 所以让我们卷起袖子,开始创建我们的保存功能。
GameMaker提供了一些函数来处理一般的文本文件,以及一些功能来编码和解码数据,数据从DSMaps转成JSON格式,再从JSON转回到DSMaps(即json_encode和json_decode)。
JSON是存储和组织数据最流行的标准之一。 该名称是Java脚本对象符号的缩写,并因为Java脚本编程语言流行而推广开来,它是在文件上序列化Java脚本对象,替代XML。
JSON非常方便,因为它是以键值的方式组织的,就像我们的DS Map数据结构一样;它只是一个简单的字符串,所以它可以很容易地从文本文件中解析或写入文本文件。 JSON的简单性是它的优点。 事实上,它是最常用的数据交换格式,这使得它成为一个非常便携的解决方案,可以在任何平台和任何应用程序上运行和轻松解析。
在GML中管理(打开、读取、写入、关闭)文本文件有许多方法,这取决于我们想要使用的标准(例如,INI文件有专用功能,它们是遵循特定语法的文本文件,就像JSON一样)。 在我们的例子中,我们希望使用最常用的函数来打开纯文本文件。
file_text_open_read(fname)
此函数打开fname(它是一个字符串)指定的文本文件以供读取。 它返回文件的唯一id,以便您可以使用它从文件中读取。
例如
var file = file_text_open_read(filename); var name = file_text_read_string(file); file_text_close(file);
下面的这个函数
file_text_open_write(fname)
此函数用于打开文件进行写入。 如果文件不存在,GameMaker创建它。 如果文件已经存在,它就会被覆盖。
函数返回打开文件的唯一id。 让我们看看一个用法示例:
var file = file_text_open_write(filename); file_text_write_string(file, my_text); file_text_close(file);
下面的这个函数
file_text_open_append(fname)
与file_text_open_write类似,这个是用来写的。不同之处在于,如果文件已经存在,file_text_open_write就会覆盖它,而这个函数则从内容末尾开始追加,将数据附加到文件的内容中。如果文件不存在,则创建它。函数返回要用于在文件上写入的打开文件的唯一id。
例如
var file = file_text_open_append(filename); file_text_write_string(file, my_text); file_text_close(file);
下面是这个函数
file_text_write_string(file_id, my_string)
此函数将字符串写入由唯一标识符file_id指示的文件中。例如
var file = file_text_open_write(filename); file_text_write_string(file, "Hello, World!"); file_text_close(file);
最后还有一个函数
file_text_close(file_id)
此函数关闭打开的文本文件。 要注意,当您完成文件操作后,一定关闭它们,否则您可能会丢失信息或创建损坏的文件。
现在,我们围绕GML中管理文件的一些最重要函数做了一下复习。接下来,就是开发游戏的存档功能了。
暂无关于此日志的评论。