Sto cercando di modificare l'esempio di classe che ho trovato in this video per renderlo un po 'più semplice da usare. Spero che i miei commenti spieghino cosa sto cercando di ottenere abbastanza bene. Il problema che sto avendo è che quando provo ad usare la tabella dati mi dà questo errore: lua: class example.lua: 7: tentativo di indicizzare il campo 'data' (un valore nullo)Passaggio dell'array come parametro di funzione in Lua?
I'm supponendo che ciò significhi che l'array non viene passato correttamente nella funzione, ma non so perché. Sono molto alle prime armi con Lua.
Ecco quello che ho:
local enemy = {}; --enemy class table
function enemy:New(data)
local object = {}; --table to store all of data within class
local len = # data --get length of passed table
for i = 1, len, 2 do --loop to input all data from passed table into object table
object.data[i] = data[i + 1];
end
function object:getData(choice) --function that allows us to retrieve data from the class
return self[choice];
end
return object; --return class data table so we can create objects using the class
end
local monsterdata = {"name", "monster", "x", 64, "y", 128, "hp", 4}; --table containing data of monster. keys are odd numbered, values to those keys are even numbered
local monster = enemy:New(monsterdata); --create a object using the class
local test = monster:getData("x"); --set variable to a value with the getData function
print(test);
Ah, è stato un errore così semplice ... anche se suppongo che di solito sia così. –
Sì, e non insolito. Digitando 't.a' invece di' t [a] 'mi succede di tanto in tanto. – mkluwe