function saveScore()
local path = system.pathForFile("scoredata001.txt", system.DocumentsDirectory)
local file = io.open(path, "w")
if file then
local score=get_score() --The get_score() returns the value of current score which is saved in 'score'.
local newScore = compareScore()
local contents = tostring( newScore )
file:write( contents )
io.close( file )
return true
else
print("Error: could not write Score")
return false
end
end
function loadScore()
local path = system.pathForFile("scoredata001.txt", system.DocumentsDirectory)
local contents = ""
local file = io.open( path, "r" )
if file then
local contents = file:read( "*a" )
local score = tonumber(contents);
io.close( file )
return score
end
print("Could not read scores from scoredata.txt")
return nil
end
function return_highScore()
local highscore=loadScore()
if highscore==nil then
highscore=0
end
return highscore
end
function compareScore()
local highscore=return_highScore()
if highscore then
local currscore=get_score()
if highscore==0 then
return highscore
elseif currscore>highscore then
return currscore
end
end
return true
end
function disp_permScore()
local display_score=return_highScore()
text_display2= display.newText("GAME OVER!\n BEST: " ..display_score, 0, 0, "Helvetica", 80)
text_display2.x = centerX
text_display2.y = centerY
text_display2.alpha=1
function gameOver()
mainScreen()
saveScore()
disp_permScore()
end
(这是参考上一个问题Permission issues in lua)
基本上我试图在lua中构建一个游戏(这是我的第一个游戏) 但是,我无法将高分保存到文件中。如果它被保存,那么我无法检索它们。 (简而言之,我总是在执行代码时遇到一些或其他错误/问题。
请查看上面的代码。我想显示高分和当前分数。目前的分数正在显示完美。这是我昨天晚上尝试过的。但是现在,高分并没有保存在文件中。 (即最佳总是显示0)此外,cmd说"无法从scoredata.txt读取分数。我无法找到我出错的地方。
请帮帮忙吗? 请告诉我哪里出错了? 另外,如果可能,请提供(或编辑)正确的代码吗?
答案 0 :(得分:1)
这一行似乎有问题
if highscore==0
then
return highscore
这意味着您检查高分是否为0,如果是,则返回它而不是实际的高分。
此外,我不知道您的代码是否只是粘贴错误,但如果没有缩进代码,它就会变得非常难以阅读。再试一次,我再次注意它,现在错误变得非常容易发现。