0

我有一个汽车课:

local car={};
local car_mt = { __index=car };
function car.new(_x, _y)
    local ncar=
    {
        img=display.newImageRect("test_car.png",50,120,true);
    }
    function ncar:set()
        self.img.xOrigin=_x;
        self.img.yOrigin=_y;
    end
    ncar:set();
    return setmetatable(ncar,car_mt);
end
return car;

当我这样称呼它时:

local pcar=require("car")
local car1=pcar:new(200,200);

x 运动不起作用。当我将 xOrigin 和 yOrigin 更改为 x 和 y 时,没关系。但是当我这样称呼它时:

local pcar=require("car")
local car1=pcar:new(200,200);
car1.img.x=200;
car1.img.y=200;

结果没问题。此外, car1.x 是 nil ,我不明白,没有父母的坐标,img 怎么会有自己的坐标。我应该在 set() 函数中写什么来为我的汽车参考提供阶段 x 和 y?有没有可能真的把它给参考,而不是给img?

4

1 回答 1

1

您应该调用不带冒号的构造函数

local car1=pcar.new(200,200);
于 2013-03-10T08:51:40.607 回答