cocos2dx之UserDefault: 数据存储及加密 (上)
·
首先说明一下楼主使用的cocos2dx的版本是3.4。
大家知道有时候游戏需要在本地存储一些数据,比如单机里面的最高分之类的。我们可以根据要存储的数据类型来调用一下接口:
bool类型:
cc.UserDefault:getInstance():setBoolForKey(key, value)
cc.UserDefault:getInstance():getBoolForKey(key)
int类型:
cc.UserDefault:getInstance():setIntegerForKey(key, value)
cc.UserDefault:getInstance():getIntegerForKey(key)
string类型:
cc.UserDefault:getInstance():setStringForKey(key, value)
cc.UserDefault:getInstance():getStringForKey(key)
float类型:
cc.UserDefault:getInstance():setFloatForKey(key, value)
cc.UserDefault:getInstance():getFloatForKey(key)
double类型:
cc.UserDefault:getInstance():setDoubleForKey(key, value)
cc.UserDefault:getInstance():getDoubleForKey(key)
这里我们先把封装一下获取和设置数据的接口,通过类型来进行数据存储:
-- 获取数据接口
function GetClientUserData( key, valueType )
if valueType == "bool" then
return cc.UserDefault:getInstance():getBoolForKey(key)
elseif valueType == "int" then
return cc.UserDefault:getInstance():getIntegerForKey(key)
elseif valueType == "string" then
return cc.UserDefault:getInstance():getStringForKey(key)
elseif valueType == "float" then
return cc.UserDefault:getInstance():getFloatForKey(key)
elseif valueType == "double" then
return cc.UserDefault:getInstance():getDoubleForKey(key)
end
end
--设置数据接口
function SetClientUserData( key, value, valueType )
if valueType == "bool" then
cc.UserDefault:getInstance():setBoolForKey(key,value)
elseif valueType == "int" then
cc.UserDefault:getInstance():setIntegerForKey(key, value)
elseif valueType == "string" then
cc.UserDefault:getInstance():setStringForKey(key, value)
elseif valueType == "float" then
cc.UserDefault:getInstance():setFloatForKey(key,value)
elseif valueType == "double" then
cc.UserDefault:getInstance():setDoubleForKey(key, value)
end
end
下面举个例子(这里存的是最高分,类型定为 int):
设置最高分:
local bestScore = 100
SetClientUserData("bestScore", 100, "int") --> 这样设完后,本地的UserDefault.xml中就会有相应的值。
获取最高分:
local bestScore = GetClientUserData("bestScore", "int") --> 100
这样设置和获取的数据是未加密的,也就是说如果用户直接改UserDefault.xml中的值,那就相当于作弊了。
下一节我们来分析如何解决用户直接修改UserDefault.xml里面中的数据这个问题
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)