大家好,我正在为我的Android编程课制作文字游戏。
我想做一个生存游戏。
因此,我将使用此角色类将此游戏制作为Character类。
这是生存游戏,所以如果玩家按下第二天按钮,我想保存
数据。
我想我可以用fileIO保存我的数据来制作一个txt
来解决这个问题文件。
然后当应用程序启动时,我读取此txt文件以加载播放器的数据。
但我觉得这个案子有问题。
我认为用户可以手动修改此数据。但我不想要这种情况。
那么如何解决这个问题?
另外,我还没有这样做。我需要改变保存游戏数据的方法吗?
我用Google搜索并发现了两种保存方式。
哪种方式更好?
如果我可以保存txt文件保存,请告诉我如何保护数据不被手动修改。
请回答这个问题!
=============================================== =====================
很抱歉不能使用流利的英语..因为我不是母语人士。
答案 0 :(得分:0)
有几个选项:
这是保存正常SharedPreferences的方式
<map>
<int name="timeout" value="500" />
<boolean name="is_logged_in" value="true" />
</map>
这是保存SharedPreferecens的安全性:
<map>
<string name="TuwbBU0IrAyL9znGBJ87uEi7pW0FwYwX8SZiiKnD2VZ7">
pD2UhS2K2MNjWm8KzpFrag==:MWm7NgaEhvaxAvA9wASUl0HUHCVBWkn3c2T1WoSAE/g=rroijgeWEGRDFSS/hg
</string>
<string name="8lqCQqn73Uo84Rj">k73tlfVNYsPshll19ztma7U">
pD2UhS2K2MNjWm8KzpFrag==:MWm7NgaEhvaxAvA9wASUl0HUHCVBWkn3c2T1WoSAE/g=:jWm8KzUl0HUHCVBWkn3c2T1WoSAE/g=
</string>
</map>
答案 1 :(得分:0)
如何对数据进行编码以使其无法读取?
我猜你现在只有文件流将玩家的数据(健康,饥饿或其他)直接写入文件。该文件可能如下所示:
100 50 78 89 6
然后,您回读每个数字,并将它们分配给Character
对象。
并且您担心用户可能能够确定哪个值对应于哪个字段并编辑该文件以作弊。我是对的吗?
您可以尝试使用ObjectOutputStream
和ObjectInputStream
将Character
对象序列化为二进制。当对象是二进制时,用户将无法读取它。另外,将文件扩展名更改为.dat
或类似的内容。
使其成为人类不可读的另一种方法是对其进行base64编码。
答案 2 :(得分:0)
使用SQlite - 如果您的游戏依赖于设备,那么您可以创建SQlite
DataBase
,这是处理游戏数据和用户信息以及游戏状态的最佳方法
使用API - 如果您不想仅依赖于设备,并且如果用户切换其手机,那么他的游戏状态是从上一个状态同步,那么您必须在服务器上创建数据库,{ {1}}或MySql
并在Android中创建并使用Oracle
。
答案 3 :(得分:0)
1.如果您在卸载应用程序后需要用户的数据并再次安装,那么您应该使用文本文件选项,您可以使用点(.fileName)隐藏文件,它将被隐藏。 2.另外,如果要存储大数据,则使用sqlite并使用表来存储数据 3.仅用于存储小数据使用sharedpreference并在应用程序标记
中的manifest中声明allowBackup = true