试图改变对象值和参考值,但不改变坐标



我有这个函数

local function cambiodesp(old,new)
   block[new]= block[old]
end

我有这个:

random=4 
local image = display.newImage(images[random], 0, 0)
image.value = random
image.x = 161
image.y = 451
block[0] = image
random=1
image.value = random 
local image = display.newImage(images[random], 0, 0)
image.x = 161
image.y = 515
block[1] = image

我想更改块。图像的值,图像在块中的引用,但我不想改变坐标。我正在调用函数:

cambiodes(0,1)

但是坐标在变,我不知道该怎么办。

我希望你能给我一个答案,建议或任何你认为。

非常感谢

您正在复制整个表(引用);如果您想保留x和y坐标,只需保存它们并重新分配(假设其他一切都按照您的要求进行):

local function cambiodesp(old,new)
   local x, y = block[new].x, block[new].y
   block[new]= block[old]
   block[new].x, block[new].y = x,y
end
local function swap(old,new)
    block[old], block[new] = block[new], block[old] #swap references
    block[old].x, block[old].y, block[new].x, block[new].y = block[new].x, block[new].y, block[old].x, block[old].y #re-set coordinates
end

最新更新