我试图在我的游戏中实现一个高分系统,但是当我尝试声明我的高分榜loadFile时,我得到了这个错误。
Attempt to call global 'loadFile' (a nil value)
这是我的代码。
highscore = loadFile ("highscore.txt")
local function checkForFile ()
if highscore == "empty" then
highscore = 0
saveFile("highscore.txt", highscore)
end
end
checkForFile()
print ("Highscore is", highscore)
local function onSystemEvent ()
if playerScore > tonumber(highscore) then
--We use tonumber as highscore is a string when loaded
saveFile("highscore.txt", score)
end
end
Runtime:addEventListener( "system", onSystemEvent )
我正在使用Corona SDK。
答案 0 :(得分:3)
the corona的开发人员发表了关于保存和写入文件的好guide,这应该可以满足您的需求。
基本上你通过 system.pathForFile 获取路径,然后使用 io.open 打开它。
你会这样做:
local path = system.pathForFile( "highscore.txt", system.DocumentsDirectory )
local file = io.open(path, 'w+')
然后,获取文件的内容:
local content = file:read('*a')
local highscore
if (content ~= null)
highscore = tonumber(content)
// do stuff with the loaded highscore
end
并写入文件:
file:write(highscore)
答案 1 :(得分:1)
您要加载的文件不是Lua文件,而是文本文件。所以即使它存在,使用loadfile
也毫无意义。请改为io.read
file:read
或file:lines
(其中file
是io.open()
返回的对象。)