Я сейчас работаю над проектом Defold и мне нужно создать класс в lua. Это мой базовый класс
local class = {}
class.__index = class
class.value = nil
function class.create()
local o ={}
setmetatable(o, class)
return o
end
function class:printOut()
print(class.value)
end
function class:setValue(value)
class.value = value
end
return class
Это мое использование в основном скрипте
local mclass = require "main.mclass"
local B
local C
function init(self)
msg.post(".", "acquire_input_focus")
msg.post("@render:", "use_fixed_fit_projection", { near = -1, far = 1 })
B = mclass.create()
C = mclass.create()
end
function on_input(self, action_id, action)
if action_id == hash("touch") and action.pressed then
B:setValue(10)
print(B.value)
B:setValue(12)
print(C.value)
--print(B.value)
end
end
Я предполагаю создать экземпляр из базового класса для каждого B и C. Но, похоже, они оба указывают на один и тот же базовый класс. Поскольку я изменил значение с помощью B, значение в C также изменилось. Я что-то здесь упустил? Или мои настройки для класса неверны. Спасибо за помощь, ребята!