LibGDX 游戏状态存储Preference

本文介绍了一种在游戏开发中常用的轻量级数据存储方式——Preference。Preference类似于HashMap,使用字符串作为键,存储各种基本类型的数据值。文章详细阐述了Preference的声明、读写操作及如何确保修改的数据被持久化保存。

Preferences

 

Preferences是一种存储应用内数据的简便方法,比如,存储用户设定,游戏状态。Preferences的工作方法就像hash map,使用字符串作为关键字(key),其他原始类型的值作为该关键字对应的值。

 

在网页项目中,浏览器中运行游戏是,preference是目前唯一的存储游戏状态的方法。

 

声明preference

 

Preferences prefs = Gdx.app.getPreferences("My Preferences");

其中My Preferences是一个文件名,会在应用目录下真实存在,对于安卓,即便应用升级,该文件仍会保留,但是如果应用删除,该文件会一起被删除。

应用可以使用多个preference,只要使用不同的名字创建即可。

 

读写值

 

prefs.putString("name", "Donald Duck");

String name = prefs.getString("name", "No name stored");

 

prefs.putBoolean("soundOn", true);

prefs.putInteger("highscore", 10);

 

注意第二句,在从preference中读数据时,可以使用缺省值,比如"No name stored",即如果"name"中没有数据,那么会使用该缺省值,作为该关键字读取的数据。

 

 

使修改生效

 

必须通过显式的调用flush()方法,才能是preference值真正写到文件中,永久保存

// bulk update your preferences

//then call flush to make it write to file

prefs.flush();

 

 

保存位置

 

在Windows,Linux,OS X,preference都是以xml文件存储在用户的home目录下。

| Windows |

`%UserProfile%/.prefs/My Preferences`

| Linux and OS X |

`~/.prefs/My Preferences`

文件名就是Gdx.app.getPreferences()的形参,你可以手动更改它,对调试很有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值