在构造函数中为对象指定坐标。Corona

我有一个车辆类:

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吗?

点赞
用户1847592
用户1847592

你应该在没有冒号的情况下调用构造函数

local car1=pcar.new(200,200);
2013-03-10 08:51:40