我想要的只是保存我的用户(播放器)高分,并且此信息在Corona SDK(Lua)中的应用程序(游戏)启动之间保持不变。我确实希望它能很好地适用于iOS和Android。我的高分数据实际上是两个包含数字的lua表。
最正确,最简单的方法是什么?
答案 0 :(得分:3)
您可以将分数保存到表格中,然后将其序列化为json格式的文本文件。
local json=require("json")
local savefile="scores.json"
scores=
{
{
level=1,
status=0,
highscore=0,
},
{
level=2,
status=0,
highscore=0,
},
}
function getScore(filename, base)
-- set default base dir if none specified
if not base then
base = system.DocumentsDirectory
end
-- create a file path for corona i/o
local path = system.pathForFile(filename, base)
-- will hold contents of file
local contents
-- io.open opens a file at path. returns nil if no file found
local file = io.open(path, "r")
local scores
if file then
-- read all contents of file into a string
contents = file:read( "*a" )
if content ~= nil then
scores=json.decode(content)
end
io.close(file) -- close the file after using it
end
return scores
end
function saveScore(filename, base)
-- set default base dir if none specified
if not base then
base = system.DocumentsDirectory
end
-- create a file path for corona i/o
local path = system.pathForFile(filename, base)
-- io.open opens a file at path. returns nil if no file found
local file = io.open(path, "wb")
if file then
-- write all contents of file into a string
file:write(json.encode(scores))
io.close(file) -- close the file after using it
end
end
全局scores
变量可以像普通表一样进行操作,当您想要加载或保存scores
表时,可以调用上面的函数。