У меня возникла проблема с загрузкой информации уровня, когда я завершаю уровень. Когда один уровень завершен, кнопка становится видимой, и при нажатии она меняет таблицу, чтобы разблокировать следующий уровень. Он работал на первом уровне и показал, что первый уровень полностью разблокирован, но нет других уровней. Мой код ниже, может ли кто-нибудь увидеть, что я делаю неправильно?Уровень разблокировки короны sdk
function levelMod(event)
if (levels[1]) then
levels[1] = 3
levels[2] = 1
composer.gotoScene(event.target.destination,{effect="fade"})
return true
else
composer.gotoScene(event.target.destination,{effect="fade"})
return true
end
end
nextBtn = display.newText("Next level",0,0,"Helvetica",15)
nextBtn.x=display.screenOriginX+200
nextBtn.y=display.contentHeight-5
nextBtn.destination = "gotoPlay"
nextBtn:addEventListener("touch",levelMod)
nextBtn.isVisible = false
sceneGroup:insert(nextBtn)
function gameOver(condition)
if(condition =="WINNER") then
screenText.text="Amazing!";
nextBtn.isVisible= true
elseif(condition =="Not Bad") then
screenText.text="Not To Shabby."
nextBtn.isVisible = true
elseif (conditon =="loser") then
screenText.text="You Can Do Better.";
end
end
gameOver
функция вызывается из другой функции, и если победитель или не плохо, то кнопка становится видимым, то при нажатии на кнопку идет в мой файл игры, который держит свою таблицу с уровнями. Он использует функцию levelMod
, чтобы разблокировать уровни.
local levelsave = require("levelSave")
levels = {
1,2,2,2,2,
2,2,2,2,2,
2,2,2,2,2,
}
levels = loadInfo()
images ={
{ getFile="unlock.png", types="play" },
{ getFile="lock .png", types="locked" },
{ getFile="greenchecked.png", types="done" }
}
Это в основном фрагменте моего файла игры, который устанавливает таблицу в состояние блокировки или разблокировки. Затем:
saveInfo()
был помещен в мою сцену шоу.
local json = require("json")
function loadInfo()
local base = system.pathForFile("levels.json", system.DocumentsDirectory)
local jsoncontents = ""
local levelsArray = {}
local file = io.open(base,"r")
if file then
local jsoncontents = file:read("*a")
levelsArray = json.decode(jsoncontents);
io.close(file)
return levelsArray
end
return levels
end
function saveInfo()
local base = system.pathForFile("levels.json", system.DocumentsDirectory)
local file = io.open(base, "w")
local jsoncontents = json.encode(levels)
file:write(jsoncontents)
io.close(file)
end
И это мой файл сохранения и загрузки. Кто-нибудь может понять, что не так, и почему изменился только один уровень?
Спасибо, я не могу поверить, что я этого не видел. – NeroNDK