所以我想做的是让敌人随机开火,但是当子弹离开屏幕时向敌人发出信号并让敌人再次开火。每个敌人实例在任何时候都只能有一个活动的子弹实例。到目前为止,我只是在测试 fire 和 refire 的实现。调用 Enemy 实例的函数 shoot 如下:
function enemy:shoot()
--Calls Bullet Obj file
local Bullet = require "Bullet";
--Movement time per space
local DEFAULTTIME = 5;
--checking if property, there currently is an active bullet instance in scene
if self.activeBul ==false then
--move the bullet
self.bullet:trajectBullet({x=self.sprite.x,y=display.contentHeight, time = DEFAULTTIME* (display.contentHeight-self.sprite.y)});
--there is now an active Bullet linked to this enemy
self.activeBul = true;
else
end
end
现在在 trajectBullet 中发生的所有事情都是运动实现。我现在想弄清楚如何让链接的敌人实例知道它的子弹不在屏幕上。我对 lua 和 Corona SDK 还很陌生,所以我仍然掌握如何最好地处理事情,所以请耐心等待我在下面寻找的简单概述
--random enemy fire
--move Bullet location on top of enemy(appears enemy fires)
--makes linked bullet visible
--simulates trajectory
CASE:* doesn't hit anything and goes off screen*
--hides Bullet
--signals to linked enemy it can fire again(changing activeBul to false)
需要记住几件事,我将 Bullet 和 Enemy 作为元表。Bullet 实例也是在创建敌人的同时创建的。所以敌人永远不会创建多个 Bullet 实例,只是隐藏并重新定位它开火。
我真的在寻找关于我应该如何让它正常工作的见解,任何建议都将不胜感激