如何在Corona(Lua)中创建enterframe?

我有这个很好的汽车类:

local car={};
local car_mt = { __index=car };

local this;
function car.new(_x, _y)
    local ncar=
    {
        img=display.newImageRect("test_car.png",50,120,true);
        x=0;
        y=0;
        main_frame=function(self)
            self.img.x=self.x;
            self.img.y=self.y;
        end
    }
    function ncar:set()
        self.x=_x;
        self.y=_y;
        Runtime:addEventListener("enterFrame",self.main_frame(self));
    end
    ncar:set();
    return setmetatable(ncar,car_mt);
end
return car;

我通过以下方式调用它:

function scene:enterScene( event )
    local group = self.view
    physics.start();
    local car1=pcar.new(200,200);

end

它工作得很好,但是会给我一个“assertion failed”错误,具体是在以下代码中:

> getOrCreateTable
> addEventListener
> addEventListener
> Runtime:addEventListener("enterFrame",self.main_frame(self));

在监视器中一切似乎都很好,那么问题出在哪里呢?

点赞
用户2136963
用户2136963

最后通过以下方式解决:

main_frame = function(self)
    return function(event)
        self.img.x = self.x;
        self.img.y = self.y;
    end
end
2013-03-10 11:17:10