从Corona Lua数组中删除特定的对象

我正在尝试随机生成物体,它们会移动向屏幕上可以拖动的球。基本上,我想让用户尝试避开这些物体。我正在尝试使箭头生成并向球的位置移动,然后在一段时间后消失。这里的代码对第一个箭头有效,但尝试删除第二个箭头时会调用错误,提示“尝试调用方法'remove self'(一个nil值)”。

local function cleararray()
    if ( object[objectTag] ) then
        object[objectTag]:removeSelf()
    end
end

local function spawnObject()
    objectTag = objectTag + 1
    local objIdx = mRandom(#objects)
    local objName = objects[objIdx]
    object[objectTag]  = display.newImage("btn_arrow.png")
    object[objectTag].x = mRandom(320)
    object[objectTag].y = mRandom(480)
    object[objectTag].name = objectTag
    print(objectTag)
    transition.to( object[objectTag], { time=2000, y=myObject.y, x=myObject.x } )
    timer.performWithDelay(2000,cleararray,1)
end
点赞
用户501459
用户501459

cleararray 需要知道要移除哪个对象。引用 objectTag 是行不通的,因为它是全局的,所以它始终会有到目前为止最高的值,而不是你要移除的对象的值。相反,你可以创建一个闭包,引用对象,这样它就知道要操作哪个对象。

local function spawnObject()
    objectTag = objectTag + 1
    object[objectTag].name = objectTag
    ...
    local function cleararray()
        object[object.name]:removeSelf()
        object[object.name] = nil
    end
    timer.performWithDelay(2000,cleararray,1)
end
2013-11-27 22:32:56