2015-01-23 6 views
0

У меня возникла проблема с загрузкой информации уровня, когда я завершаю уровень. Когда один уровень завершен, кнопка становится видимой, и при нажатии она меняет таблицу, чтобы разблокировать следующий уровень. Он работал на первом уровне и показал, что первый уровень полностью разблокирован, но нет других уровней. Мой код ниже, может ли кто-нибудь увидеть, что я делаю неправильно?Уровень разблокировки короны 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 

И это мой файл сохранения и загрузки. Кто-нибудь может понять, что не так, и почему изменился только один уровень?

ответ

0

Вы не меняете значения таблиц следующих уровней.

Это твой код для первого уровня. Вы просто не обрабатываете ничего, кроме уровня 1.

if (levels[1]) then 
levels[1] = 3 
levels[2] = 1 

Вы должны, когда уровень 2 завершен. Выполните следующие действия:

levels[2] = 3 
levels[3] = 1 
+0

Спасибо, я не могу поверить, что я этого не видел. – NeroNDK