在我尝试创建的游戏中,我有玩家可以触摸的对象。如果这些物体被触摸,舞台将被清除。由于有多个对象,我将所有内容都放在一个数组中,我需要从数组中删除触摸的对象,这样它只会在数组为空时调用 stage clear。这是我目前正在尝试使用的代码:
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] 从数组中删除对象。