#lua
#lua
Вопрос:
вопрос об ООП здесь.
Invader = {PosX = 5, PosY = 5, alive = true}
function Invader:new(x, y)
-- local InvaderImage = paintUtils.loadImage("")
self.__index = self
self.PosX = x
term.setCursorPos(self.PosX, self.PosY)
write("V")
function refreshInvader()
write("moved")
term.setCursorPos(self.PosX, self.PosY)
write(" ")
self.PosX = self.PosX 3
term.setCursorPos(self.PosX, self.PosY)
write("V")
end
end
Если бы я вызвал refreshInvader, перемещался бы только последний созданный мной файл. Есть ли в любом случае возможность переместить все?
Ответ №1:
У вас есть только одна Invader
таблица. Все ваши операции относятся к self
тому, что Invader
Ни в коем случае в вашем коде вы не создаете вторую таблицу, которая служила бы «новым объектом».
Вам нужно было бы сделать что-то подобное, чтобы получить несколько объектов:
Pet = {}
function Pet:new(name, sound)
self.__index = self
local newObject = setmetatable({}, self)
newObject.name = name or "unnamed"
return newObject
end
local a = Pet:new("Snuggles")
local b = Pet:new("Nibbles")