2011-04-23 114 views
0

好的,所以我有一支激光枪,它是射击激光(好啊),叫做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

它们被移除并放置在其他地方,因为您在此处使用了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]); 

现在,你可以通过阵列命中测试周期,等等。

让我知道这是否太概念化,我会再写一些代码。

+0

是啊我真的不明白这一切,我得到了什么问题,但没有如何解决它。哦,是的,我没有上课,我想我可能会让你知道 – Thor625 2011-04-24 01:03:04