关于OOP的问题。
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,则只会移动我创建的最新版本。反正有什么要动的吗?
您只有一张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")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句