5

この方法を使用してゲームの設定を保存しています

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

いつ saveTabel と loadTable を使用する必要がありますか

アプリの起動時に saveTable を使用すると、テーブルのデフォルト値が保存されますが、アプリの再起動時に最後に保存された値を読み込むにはどうすればよいですか。

( if ) を使用して、ファイルが存在するかどうかを確認できますか?

助けてください

前もって感謝します!

4

3 に答える 3

7

これを 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

新しいデータを設定に保存する場合は、次のようにします。

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

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

変更した設定を保存するには、次を使用します。

saveTable(myGameSettings, "mygamesettings.json")

データを変更するたびに設定を保存することも、ユーザーがゲームの終了ボタンをタップしたときだけ設定を保存することもできます。

于 2013-05-13T18:14:55.127 に答える
4

デフォルト値でファイルをロードする必要があり、ファイルが存在しない場合は作成する必要があります。その値を変更するたびに、値をファイルに保存します。

次のコードが役立つ場合があります。

   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

データの読み込みと保存のためにこれらの関数を呼び出すだけです。また、これらの関数を別のファイルにコーディングし、読み込みと保存のたびにそのファイルを必要としてこれらの関数を使用すると、より簡単になります。

于 2013-06-10T09:59:28.010 に答える
1

通常、アプリの起動時に設定をロードするだけで済みます。その後、テーブルはメモリ内にあり、アプリの再起動後も存続するために必要な変更を行ったときに、テーブルを保存するだけで済みます。

于 2013-05-27T01:38:39.250 に答える