1.0.4
版本新增了将数据保存到文件的功能,可以快速存取简单的数据类型。
要使用这个功能,首先应该设置你的AppName
。AppName 是你游戏的唯一标识,它的默认值和你的窗口名称相同,用于区别其他人做的同类游戏。如果你做了“推箱子”这个游戏而没有设置 AppName,当你运行其他人做的推箱子时,你保存的数据文件就有可能被覆盖。
应在创建 App 对象,并调用 createWindow 函数后设置 AppName,例如:
1 | App app; |
注意:不要在AppName中设置特殊字符,也尽量不使用中文,防止字符集问题导致错误。
FileUtils
支持保存的数据类型有int
、double
和字符串,对应的函数分别如下
1 | // 保存 |
第一个参数key
用于标识保存的这个变量,例如游戏现在进行到第五关,你想保存这个值,就可以使用
1 | int level = 5; |
保存之后,可以根据这个数据的key
把它取出
1 | int level = FileUtils::getInt(_T("level"), 1); // 取出之前保存的关卡值 |
若使用了一个不存在的key
,则会用第二个参数的值作为默认值
1 | int level = FileUtils::getInt(_T("test"), 1); // 没有 test 对应的值,则 level 为 1 |
注意: AppName、数据的key、保存的字符串中含有中文时,在Unicode工程下会出现错误
FileUtils
将数据文件保存在系统的 AppData\Local 文件夹里,数据并不是加密的,你可以在 AppData\Local\你的AppName\DefaultData.ini 中找到保存的数据。