Loadsave 模块 - Corona SDK
Loadsave module - Corona SDK
我正在为我的 Corona SDK 游戏使用 Rob Miracle 的加载保存模块
我有这个小询盘
如果我在 mydata.lua
上保存 json table
M={}
M.highScore = 0
M.levels=1
loadsave.saveTable(M,"settings.json")
return M
现在如果在 game.lua...我这样做....
function gameOver
If gamewin == false then
mydata.level = mydata.level + 1
gamewin = true
loadsave.saveTable(mydata,"settings.json")
end
现在,如果我这样做,loadsave 模块会覆盖整个 json 文件,从而从那里删除高分参数吗?
请帮忙
是的。来自 the source 的 saveTable
定义:
function saveTable(t, filename)
local path = system.pathForFile( filename, system.DocumentsDirectory)
local file = io.open(path, "w")
if file then
local contents = json.encode(t)
file:write( contents )
io.close( file )
return true
else
return false
end
end
如您所见,该函数使用 io.open(path, "w")
写入文件。因为,io.open
在与写入模式(w
参数)一起使用时会创建一个全新的文件,旧文件将被覆盖。
您可以先从 json 文件加载内容,然后再用新值覆盖:
function gameOver()
local mydata = loadsave.loadTable "settings.json"
if gamewin == false then
mydata.level = mydata.level + 1
gamewin = true
.
.
.
loadsave.saveTable(mydata,"settings.json")
end
我正在为我的 Corona SDK 游戏使用 Rob Miracle 的加载保存模块
我有这个小询盘
如果我在 mydata.lua
上保存 json tableM={}
M.highScore = 0
M.levels=1
loadsave.saveTable(M,"settings.json")
return M
现在如果在 game.lua...我这样做....
function gameOver
If gamewin == false then
mydata.level = mydata.level + 1
gamewin = true
loadsave.saveTable(mydata,"settings.json")
end
现在,如果我这样做,loadsave 模块会覆盖整个 json 文件,从而从那里删除高分参数吗?
请帮忙
是的。来自 the source 的 saveTable
定义:
function saveTable(t, filename)
local path = system.pathForFile( filename, system.DocumentsDirectory)
local file = io.open(path, "w")
if file then
local contents = json.encode(t)
file:write( contents )
io.close( file )
return true
else
return false
end
end
如您所见,该函数使用 io.open(path, "w")
写入文件。因为,io.open
在与写入模式(w
参数)一起使用时会创建一个全新的文件,旧文件将被覆盖。
您可以先从 json 文件加载内容,然后再用新值覆盖:
function gameOver()
local mydata = loadsave.loadTable "settings.json"
if gamewin == false then
mydata.level = mydata.level + 1
gamewin = true
.
.
.
loadsave.saveTable(mydata,"settings.json")
end