更改场景时如何删除元素?

时间:2013-10-25 15:57:24

标签: corona

在太空射击游戏中,我通过单独的LUA文件添加敌人。这些敌人有定时器可以制造镜头。当改变场景时,我想删除所有敌人的实例,停止他们的计时器并移除所有镜头。

我已经能够通过将各个敌人添加到场景的显示组中来移除它们,但我无法通过计时器或镜头来执行此操作。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

创建计时器时,只需执行以下操作:

在场景顶部声明计时器,使其成为场景中的全局范围,如:

local timer_1

然后将计时器用作:

timer_1 = timer.performWithDelay(1000,myFunction,-1)

然后你可以将它停止为:

if(timer_1)then
  timer.cancel(timer_1)
end

继续编码..................:)

答案 1 :(得分:0)

我会做什么(这就是我在游戏中实际处理这种问题的方法)是创建一个表来跟踪敌人,然后使它成为敌人是面向对象的类,同时拥有定时器和镜头。

示例:

你可以创建一个'敌人'类(本地myEnemy),它有一个内部计时器(myEnemy.timerID)和一个内部射击表(myEnemy.shots)。

更好的是,向敌人添加'destroy'方法(myEnemy.destroy()),停止计时器并销毁镜头,然后当你改变场景时,你只需要遍历你的桌子,调用destroy方法每个敌人,定时器/镜头将自动销毁:)

我不知道你的代码是否已经面向对象,但在这种情况下它会让事情变得更容易:) 如果您需要更多信息,请告诉我

干杯