我在Lua中做一个小项目,在将分数保存到磁盘时遇到问题。
我的代码是这样的,我确实收到了打印消息。
function saveHighScore(score)
print("High score: "..tostring(score))
local file = io.open("high_score.txt",'w')
file:write(tostring(score))
file:close()
end
有谁能帮忙吗?
当然,如果您遵循前两条注释的建议,您会更快地解决它。以下是如何做到的";以防其他人遇到同样的问题并遇到这种":
function saveHighScore(score)
print("High score: "..tostring(score))
local file,err = io.open("high_score.txt",'w')
if file then
file:write(tostring(score))
file:close()
else
print("error:", err) -- not so hard?
end
end
http://www.lua.org/manual/5.3/manual.html#pdf-io.open:
io.open(文件名[,模式])
此函数以字符串模式中指定的模式打开文件。它返回一个新的文件句柄,或者,如果出现错误,返回nil加上一条错误消息。
我发现了问题。不能保存到资源目录,只能保存到DocumentDirectory。
这是更正后的代码:
function saveHighScore(score)
path = system.pathForFile("highScore.txt", system.DocumentsDirectory)
file = io.open(path,'w')
file:write(tostring(score))
io.close(file)
print("High score: "..tostring(score))
file = nil
end
我只是想把它贴出来,以防其他人遇到同样的问题。
Number = math.random(1,100)
print("Try to guess a random number 1-100!")
while true do
local Guess = tonumber(io.read())
if Guess then
if Guess > Number then
print("Too high!")
end
if Guess < Number then
print("Too low!")
end
if Guess == Number then
print("Congratulations!")
return
end
else
print("Type a number >:(")
end
end