在太空射击游戏中,我通过单独的LUA文件添加敌人。这些敌人有定时器可以制造镜头。当改变场景时,我想删除所有敌人的实例,停止他们的计时器并移除所有镜头。
我已经能够通过将各个敌人添加到场景的显示组中来移除它们,但我无法通过计时器或镜头来执行此操作。
我该怎么做?
答案 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方法每个敌人,定时器/镜头将自动销毁:)
我不知道你的代码是否已经面向对象,但在这种情况下它会让事情变得更容易:) 如果您需要更多信息,请告诉我
干杯