Storage
---
游戏可以存储数据,例如玩家的进度。默认情况下,在游戏会话之间不会持久保存任何数据。使用**存储**操作和条件可以轻松持久保存诸如玩家的最高分、物品等信息。
要查看实例,请查看GDevelop附带的_[保存-加载示例](https://editor.gdevelop.io/?project=example://save-load)_。
注意
存储操作将所有数据存储到**内部存储**中。如果要从文件中写入或读取数据,请阅读[文件系统页面](https://wiki.gdevelop.io/gdevelop5/all-features/filesystem)(仅适用于Windows、macOS、Linux)。
从存储中写入和读取值
-----------------------------------------
当使用写入或读取存储中的值的操作时,您需要提供**存储**和**组**。
### **存储**
要将值写入的存储的名称。例如,您可能希望将玩家信息存储在名为“ player”和游戏设置在名为“ settings”的存储中。或者,您可以使用一个单一的存储保存所有内容,并称其为“ save”。如果具有该名称的存储不存在,GDevelop将创建该存储。
可以将此与磁盘上的文件名进行比较。
注意
GDevelop不使用本地文件系统来存储这些“存储”。相反,它使用应用程序的内部存储,即Web上的“ LocalStorage”。
### **组**
组名可用于组织正在保存的数据。这样,在相同的存储中存储大量数据时,更容易理解。例如,可以在一个组名内存储玩家的位置,在相同的存储中的另一个组名内存储玩家的生命值。可以通过使用斜杠分隔它们的名称在一个组中创建包含的组:
* “Player / PositionX” - 存储玩家的X位置。
* “Player / Life” - 存储玩家的生命值。
高级:在预览期间清除存储
--------------------------------------------
数据永久存储在预览窗口的内部存储中,它在预览和即使在关闭GDevelop后(例如在导出的游戏中)也会得以保持。
当我们预览游戏时,有时需要重置数据,就像游戏首次启动一样。为此,可以清除存储:
* 在预览窗口的顶部工具栏选择**查看**->**切换开发人员工具**。
* 开发人员工具通常会打开,并选中“控制台”选项卡显示一些消息。
* 单击“**应用程序**”选项卡。它可能不可见,取决于您的预览窗口的大小。您可以调整预览窗口的大小,直到顶部出现“应用程序”选项卡。
* 选择了“应用程序”选项卡后,可以在左侧的**存储**->**本地存储**->**file:**下找到存储的数据。
* 如果使用鼠标左键单击“file:”,可以查看存储中存储的详细信息。
* 要清除数据,请使用鼠标右键单击“file:”并选择“**清除**”
你现在可以关闭预览窗口。再次运行预览时,存储的数据将会消失。
进阶: 查找保存位置
桌面游戏
在台式电脑上,本地存储始终位于以下位置:
- Windows:
PATH_TO_USER_FOLDER\AppData\Roaming\GAME_NAME\Local Storage\leveldb
- Linux:
home/USER_NAME/.config/GAME_NAME/Local Storage/leveldb
例如: 如果在Windows中undefined0,用户配置文件文件夹位于C:盘上,用户账户名为BobBobson,游戏属性设置为'My GD5 Game',那么路径就是这样的: C:\Users\BobBobson\AppData\Roaming\My GD5 Game\Local Storage\leveldb
。
这会根据Windows版本和设置而有所不同,但通常可以通过在Windows资源管理器中浏览到%AppData%
然后访问与游戏名称匹配的文件夹进行访问。
HTML5游戏
如果游戏已导出为HTML5版本,并上传到像Itch.io这样的主机上,那么本地存储将与_浏览器_本地存储一起维护。
这意味着每个浏览器都有一个唯一的位置,如果用户想要找到这个位置,他们需要参考浏览器的文档。这也意味着大多数浏览器在清除本地存储数据时会删除保存的数据。
参考
所有操作、条件和表达式都在存储参考页面中列出。