2013-05-13 19 views
5

Sto usando questo metodo per salvare le impostazioni per il mio giocoCome creare e salvare le impostazioni in corona sdk?

http://omnigeek.robmiracle.com/2012/02/23/need-to-save-your-game-data-in-corona-sdk-check-out-this-little-bit-of-code/

Quando devo usare saveTabel e loadTable

Se uso saveTable quando l'applicazione si avvia salva il valeus predefinita della tabella, ma come posso caricare l'ultimo valore salvato quando l'app ricomincia.

Posso usare (if) per verificare se il file esiste o no?

Qualche aiuto per favore

Grazie in anticipo!

risposta

4

È necessario caricare il file con i valori predefiniti e se il file non esiste è necessario crearlo. e ogni volta che si modifica quel valore, si salva il valore nel file.

Seguendo codice può aiutare a:

function load_settings() 
     local path = system.pathForFile("saveSettings.json", system.DocumentsDirectory) 
     local file = io.open(path, "r") 
     if file then 
      local saveData = file:read("*a") 
      io.close(file) 

      local jsonRead = json.decode(saveData) 
      value = jsonRead.value 

    else 
      value = 1 
    end end 

function save_settings() 
    local saveGame = {} 
    if value then 
    saveGame["value"] = value 
    end 

    local jsonSaveGame = json.encode(saveGame) 

    local path = system.pathForFile("saveSettings.json", system.DocumentsDirectory) 
    local file = io.open(path, "w") 
     file:write(jsonSaveGame) 
    io.close(file) 
    file = nil 
end 

basta chiamare queste funzioni per caricare e salvare i dati. E sarà più facile se codifichi queste funzioni in file diversi e ogni volta che carichi e salvi richiedi solo quel file e usi queste funzioni.

7

È possibile utilizzare questo nel vostro main.lua:

--require the file with the save/load functions 
local settings = require("settings") 

myGameSettings = loadTable("mygamesettings.json") 

if myGameSettings == nil then 
    --There are no settings. This is first time the user launch your game 
    --Create the default settings 
    myGameSettings = {} 
    myGameSettings.highScore = 1000 
    myGameSettings.soundOn = true 
    myGameSettings.musicOff = true 
    myGameSettings.playerName = "Barney Rubble" 

    saveTable(myGameSettings, "mygamesettings.json") 
    print("Default settings created") 

end 

Ora, se si desidera salvare alcuni nuovi dati alle impostazioni:

--example: increment highScore by 50 
myGameSettings.highScore = myGameSettings.highScore + 50 

--example: change player name 
myGameSettings.playerName = "New player name" 

E per risparmiare le impostazioni modificate utilizzano:

saveTable(myGameSettings, "mygamesettings.json") 

È possibile salvare le impostazioni ogni volta che si modificano alcuni dati o è possibile salvare le impostazioni una sola volta: quando l'utente tocca il pulsante di uscita dal gioco.

+0

Grazie per l'aiuto – Beri

+1

non è lua ... – Bnhjhvbq7

+0

Aggiornato il codice per essere Lua e aggiunto la riga require ('settings'), assumendo che le funzioni loadTable/saveTable siano in settings.lua – Rebs

1

In genere è necessario caricare le impostazioni solo all'avvio dell'app. Successivamente, la tabella è in memoria e devi solo salvare la tabella quando apporti le modifiche necessarie per sopravvivere al riavvio di un'app.

Problemi correlati