Ben biraz daha akıcı kullanımı yapmak Ben this video bulunan sınıf örneğini değiştirmeye çalışıyorum. Umarım yorumlarım yeterince iyi bir şekilde başarmaya çalıştığımı açıklar. Sorun şu ki veri tablosunu kullanmaya çalıştığımda bana bu hatayı veriyor: lua: class example.lua: 7: alan 'indeks' indeksleme girişimi (bir nil değer)Diziyi Lua'da işlev parametresi olarak geçirme?
Bunun, dizinin fonksiyona düzgün bir şekilde aktarılmadığı anlamına geldiğini varsayardım, ama nedenini bilmiyorum. Lua ile çok yeni başladım. İşte
bende ne var: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, öyle basit bir hataydı ki ... ... sanırım bu genelde geçerli. –
Evet, ve nadir olmayan bir değil. T [a] 'yerine 't.a' yazarak zaman zaman bana olur. – mkluwe