Tentative d'indice local (une valeur booléenne)

J'ai 2 fichiers Lua, main.lua et game_model.lua. J'essaie de sauver quelques détails dans un fichier JSON (j'ai googlé que l'utilisation d'un fichier JSON serait le meilleur moyen pour enregistrer les paramètres d'un utilisateur et le score), mais j'obtiens l'erreur suivante:

Erreur: Fichier: main.lua
Ligne: 11
Tentative d'indice local " jeu " (une valeur booléenne)

Pourquoi j'obtiens cette erreur et comment la corriger?

Voici le code dans mon main.lua:

--Main.lua

display.setStatusBar( display.HiddenStatusBar )

local composer = require( "composer" )
local game = require("data.game_model")

myGameSettings = {}
myGameSettings.highScore = 1000
myGameSettings.soundOn = true
myGameSettings.musicOff = true
myGameSettings.playerName = "Andrian Gungon"
game.saveTable(myGameSettings, "mygamesettings.json")

composer.gotoScene("scripts.menu")

game_model.lua (dans le data sous-répertoire) contient ce code:

--game_model.lua (located at data/game_model.lua)

local json = require("json")

function saveTable(t, filename)
    local path = system.pathForFile( filename, system.DocumentsDirectory)
    local file = io.open(path, "w")
    if (file) then
        local contents = json.encode(t)
        file:write( contents )
        io.close( file )
        return true
    else
        print( "Error!" )
        return false
    end
end

function loadTable(filename)
    local path = system.pathForFile( filename, system.DocumentsDirectory)
    local contents = ""
    local myTable = {}
    local file = io.open( path, "r" )
    if (file) then         
         local contents = file:read( "*a" )
         myTable = json.decode(contents);
         io.close( file )
         return myTable 
    end
    return nil
end

OriginalL'auteur Andrian Gungon | 2014-12-13