添加敌人

时间:2011-04-23 22:02:44

标签: actionscript actionscript-3

好的,所以我有一把激光枪,它正在拍摄名为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);
    }
}

1 个答案:

答案 0 :(得分:1)

它们被删除并放在别处,因为你在这里使用了一个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]);   

现在你可以在数组中循环进行命中测试等等。

让我知道这是否过于概念化,我会更多地编写代码。