【发布时间】:2013-07-28 22:55:29
【问题描述】:
我的 updateScore 有问题,我的功能是如果用户第一次玩游戏。
它将创建我的名为 myFile.txt 的文件来记录分数,现在执行此操作的代码是(如果阅读器则)查看文件是否存在,如果不存在,它将转到我的 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
【问题讨论】: