添加敌人



好的,所以我有一支激光枪,它正在发射激光(好吧,duh),叫做laser_mc,我现在正在放入敌人。但有一个问题。当我添加名为bad的敌人时,它们会被添加,移除,然后在其他地方重新出现。

这是我的代码。我做错了什么?
var badadd:bad; badadd = new bad()
addEventListener(Event.ENTER_FRAME, createbad);
function createbad(event:Event):void {
    addChild(badadd);
    badadd.x = Math.random()*stage.width;
    badadd.y= Math.random()*stage.height;
}
addEventListener(Event.ENTER_FRAME, removebad);
function removebad(event:Event):void {
    if (laser_mc.hitTestObject(badadd)) {
        removeChild(badadd);
    }
}

它们被删除并放置在其他地方,因为您在这里使用了enter_frame循环。每次一帧结束时,你的程序都会在一个随机位置添加相同的敌人。所以它在一个随机的位置添加,删除它,然后再在一个随机的位置添加。

你可能想尝试这样做:

设置一个for循环并用敌人填充数组。将数组声明为类属性 EnemyArray。像(伪代码):

for i = 1 to 10
    var tempEnemy = new Enemy()
    EnemyArray[i].push(tempEnemy) // put the enemy in the array

现在当你需要添加一个敌人时-它已经被实例化了,所以你只需要输入:

addChild(tempEnemy[index]);   

现在您可以循环遍历数组以进行命中测试,等等。

如果这太概念化了,请告诉我,我会把代码写得更详细一些。

最新更新