我的 updateScore 有问题,我的功能是用户第一次玩游戏。
它将创建我的名为 myFile.txt 的文件来记录分数,现在执行此操作的代码是(如果 reader then)查看文件是否存在,如果不存在,如果已经有文件,它将转到我的else那么我的内容应该有一个分数的值,然后我可以用它来比较并得到我的高分。
问题是我的内容总是返回nil
值,因此你在玩时总是得到的分数将取代应该是我的高分的分数,我不知道我做错了什么。
这是我的代码
function updateScore()
local path = system.pathForFile( "myfile.txt", system.DocumentsDirectory )
local reader = io.open( path, "r" )
local file = io.open( path, "w" )
if reader then
reader:close()
local reader1 = io.open( path, "r" )
local contents = reader1:read("*n")
if (stopscore == false) then
score = score + 1
scoreText.text = "score: " .. score
scoreText:setReferencePoint(display.CenterLeftReferencePoint)
scoreText.x = 0
scoreText.y = 30
end
if (stopscore == true) then
if (contents == nil) then
local file = io.open( path, "w" )
file:write(score)
file:flush()
file:close()
timer.pause(timer1)
director:changeScene( "menu", "downFlip" )
else
if (contents < score) then
file:write(score)
file:flush()
file:close()
timer.pause(timer1)
director:changeScene( "menu", "downFlip" )
else
file:write(contents)
file:flush()
file:close()
timer.pause(timer1)
director:changeScene( "menu", "downFlip" )
end
end
end
else
local file1 = io.open( path, "w" )
local walaVal=0
file1:write(walaVal)
file1:close()
if (stopscore == false) then
score = score + 1
scoreText.text = "score: " .. score
scoreText:setReferencePoint(display.CenterLeftReferencePoint)
scoreText.x = 0
scoreText.y = 30
print(contents)
end
if (stopscore == true) then
local file = io.open( path, "w" )
file:write(score)
file:flush()
file:close()
timer.pause(timer1)
director:changeScene( "menu", "downFlip" )
end
end
end