在lua中更改对象引用

时间:2013-06-17 22:14:49

标签: lua corona corona-storyboard

在这里,我生成一个带有图像的4 x 8面板,然后将参考保存到块中。

local function createBlocks()

local rowcount = 8
    local colcount = 4

    local blockWidth = display.contentWidth / (colcount*4)
    local blockHeight = display.contentWidth / (rowcount*2)

    local row
    local col
    local pan = 3
    local i=0
    for row = 1, rowcount do
            for col = 1, colcount do
                    local x = (col - 1) * blockWidth + pan
                    local y = (row + 1) * blockHeight + pan
                    local random= math.random(1,6)

                    random = revisarTres(i, random)

                    print (random)
                    block[i] = display.newImage(images[random], x, y)
                    block[i].value= random     
                    block[i]:addEventListener("touch", blockTouch)
                    i=i+1
            end
    end

然后我添加一个事件监听器,看看他们是否触摸过图像。 然后我验证,如果他们已经触摸,它就在这里进行了转换。

transition.to(startBlock, {time=tranTime, x=event.target.x, y=event.target.y})
transition.to(event.target, {time=tranTime, x=startBlock.x, y=startBlock.y})

但我想在块数组中更新此更改。所以我做到了:

aux = block[old]
            auxval = block[old].value
            block[old]= block[new]
            block[old].value= block[new].value
            block[new]= block[old]
            block[new].value= auxval

但它不起作用,我想知道一种改变参考值的方法。

我希望你能救我。

1 个答案:

答案 0 :(得分:1)

我想说你的交换两个值的功能是错误的,请参阅:

aux = block[old]
auxval = block[old].value
block[old]= block[new]
block[old].value= block[new].value
block[new]= block[old]
block[new].value= auxval
如果你想交换阻止[old]和阻止[new],那就太丑了,就像那样:

block[old], block[new] = block[new], block[old]