Class 如何在方法调用中使用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

我使用一个Lua类创建两个对象,每个对象都必须检查另一个对象的位置以确定它们的移动。我正在尝试使用timer.performWithDelay让他们每秒检查一次,但由于某些原因,当我尝试这样做时,线路

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