Tôi đang cố gắng thay đổi ví dụ về lớp mà tôi đã tìm thấy trong this video để làm cho nó được sắp xếp hợp lý hơn một chút để sử dụng. Hy vọng rằng ý kiến của tôi giải thích những gì tôi đang cố gắng để đạt được đủ tốt. Vấn đề tôi gặp phải là khi tôi cố gắng sử dụng bảng dữ liệu, nó cho tôi lỗi này: lua: class example.lua: 7: cố gắng lập chỉ mục trường 'dữ liệu' (giá trị nil)Truyền mảng như tham số hàm trong Lua?
Tôi giả định rằng điều này có nghĩa là mảng không được truyền vào đúng chức năng, nhưng tôi không biết tại sao. Tôi là một người mới bắt đầu với Lua.
Đây là những gì tôi đã có:
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, đó là một sai lầm đơn giản ... mặc dù tôi cho rằng đó thường là trường hợp. –
Có, và không phải là không phổ biến. Việc gõ 't.a' thay vì' t [a] 'xảy ra với tôi theo thời gian. – mkluwe