在我试图创造的游戏中,我有玩家可以触摸的物体。如果触摸了这些对象,则将清除该阶段。由于有多个对象,我将所有内容都放在一个数组中,我需要从数组中删除触摸的对象,这样一旦数组为空,它只会调用stage清除。这是我目前正在尝试使用的代码:
if event.phase == "ended" then
for i=#objArray,0,-1 do
if(#objArray ~= 0) then
objArray[i] = table.remove(objArray)
else
storyboard.gotoScene("ClearStage", fade, 400)
timer.pause(timerCount)
end
end
end
这个问题是数组在循环一次后立即变为0。另外,我认为我不应该是objArray中的值。它应该是被触摸的对象,但我不知道如何实现它。我需要做类似的事情:
if objArray > 0 then
--remove touched object from array
else
--go to clear
end
我刚刚开始使用数组和循环,所以我仍然非常困惑所以我希望有人可以帮助我。当数组大于0时,如何告诉我的数组只删除被触摸的对象?
实际上,没关系。我用我的代码调整时想出了解决方案。这是我最终得到的代码:
if(#objArray ~= 0) then
objArray[0] = table.remove(objArray)
if(#objArray == 0) then
storyboard.gotoScene("ClearStage", fade, 400)
timer.pause(timerCount)
end
end
基本上,我不再需要for循环了,我使用0索引(如果我的理解是正确的)就像这样:objArray [0]从数组中删除对象。
答案 0 :(得分:1)
我想你可能会删除你碰到的那个对象。这个
display.remove(event.target);event.target=nil
删除后检查您的数组大小
if #objArray == 0 then
--here you do your array clear work
table.remove (objArray )
end