我试图随机产生的物体朝向可以在屏幕上拖动的球移动。基本上我只是希望用户尝试避免这些对象。我试图使箭头产生并移向球位置,然后在一段时间后消失。此代码适用于第一个箭头但是当它尝试删除它调用的第二个代码并且错误地说attempt to call method 'remove self' (a nil value)
时。
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
答案 0 :(得分:0)
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