0

私はまだこの素敵な車のクラスを持っています:

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

それは正常に動作しますが、例外として、「アサーションに失敗しました」というエラーが表示されます。

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

モニターではすべてが大丈夫のようです。どうしたの?

4

1 に答える 1

1

最後にこれで解決しました:

    main_frame=function(self)
        return function(event)
            self.img.x=self.x;
            self.img.y=self.y;
        end
    end
于 2013-03-10T11:17:10.040 に答える