使用多个对象时遇到麻烦

贾斯汀五世

关于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桌子。您所有的操作都指的selfInvader

在您的代码中,您绝不会创建第二个表作为“新对象”。

您必须执行以下操作才能获取多个对象:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章