Class 如何在方法调用中使用timer.performWithDelay
我使用一个Lua类创建两个对象,每个对象都必须检查另一个对象的位置以确定它们的移动。我正在尝试使用timer.performWithDelay让他们每秒检查一次,但由于某些原因,当我尝试这样做时,线路Class 如何在方法调用中使用timer.performWithDelay,class,methods,lua,coronasdk,Class,Methods,Lua,Coronasdk,我使用一个Lua类创建两个对象,每个对象都必须检查另一个对象的位置以确定它们的移动。我正在尝试使用timer.performWithDelay让他们每秒检查一次,但由于某些原因,当我尝试这样做时,线路 o.moveCheckTimer = timer.performWithDelay(1000, o:moveCheck, 0) 在类中,构造函数抛出一个错误,指出“函数参数应在“,”附近” 我尝试使用以下匿名函数: o.moveCheckTimer = timer.performWithDela
o.moveCheckTimer = timer.performWithDelay(1000, o:moveCheck, 0)
在类中,构造函数抛出一个错误,指出“函数参数应在“,”附近”
我尝试使用以下匿名函数:
o.moveCheckTimer = timer.performWithDelay(1000, function() o:moveCheck() end, 0)
但这会导致两个对象的计时器只为最近创建的对象调用函数,而不是为其本身调用函数(这也是非常令人困惑的行为,如果有人知道为什么会发生这种情况,我很想了解原因)
我已经彻底地挖掘了API和方法调用的信息,但是我似乎找不到任何同时使用它们的东西,我觉得我遗漏了一些东西
如何使用方法调用作为此计时器的侦听器
以下是完整的构造函数:
Melee = {}
Melee.__index = Melee
function Melee:new(id, name, lane, side)
local o = {}
setmetatable(o, Melee)
o.id = id
o.name = name
o.lane = lane
o.side = side
if name == "spearman" then
o.maxhp = 100
o.range = 1
o.damage = {10, 20}
o.imageName = "images/rebels/spearman.png"
else
error("Attempted to create melee unit with undefined name")
end
o.hp = o.maxhp
--Display self
o.image = display.newImageRect(mainGroup, "images/rebels/spearman.png", 80, 80)
o.image.x = 0
o.image.y = lanes[lane]
o.image.anchorY = 1
if side == 2 then
o.image.xScale = -1
o.image:setFillColor(0.8)
o.image.x = display.contentWidth - 100
end
--Move and attack
local destination = display.contentWidth
if side == 2 then
destination = 0
end
o.moving = 1
o.movement = transition.to(o.image, {x = destination, time = 30000+math.random(-200,200)})
o.moveCheckTimer = timer.performWithDelay(1000, o:moveCheck, 0)
--o.attackTimer = timer.performWithDelay(1000, self:attack, 0)
return o
end
您的第一次尝试没有成功,只是因为该语法在Lua中不是一个东西,并且没有比它更多的东西。不过,你的第二次尝试不起作用是一个很好的问题。我建议您将问题编辑为只包含它。冒号接线员
:
仅随呼叫接线员()
一起提供。请提供您创建这两个对象的代码以及moveCheck
的实现。您的第一次尝试没有成功,只是因为该语法在Lua中不是一个东西,而且没有比它更多的东西。不过,你的第二次尝试不起作用是一个很好的问题。我建议您将问题编辑为只包含它。冒号接线员:
仅随呼叫接线员()
一起提供。请提供创建这两个对象的代码以及moveCheck