Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 必要时从游戏中移除子弹和敌舰_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 必要时从游戏中移除子弹和敌舰

Actionscript 3 必要时从游戏中移除子弹和敌舰,actionscript-3,flash,Actionscript 3,Flash,我目前正在写一个简单的太空战争游戏,(这里有一个截图:) 敌舰随机从屏幕右侧驶来。我使用一个bullet.hitTestObject(Eneyship)来检查子弹是否碰到敌舰 若它击中,我需要从游戏中移除子弹和敌舰。(我试着调整它的alpha值,但并没有移除,但过了一段时间,我的游戏开始慢慢运行) 下面是我的相关代码: for each(var bullet:Bullet_ in bullets){ bullet.x+=2; for each(var enemyShip:Enem

我目前正在写一个简单的太空战争游戏,(这里有一个截图:)

敌舰随机从屏幕右侧驶来。我使用一个
bullet.hitTestObject(Eneyship)
来检查子弹是否碰到敌舰

若它击中,我需要从游戏中移除子弹和敌舰。(我试着调整它的alpha值,但并没有移除,但过了一段时间,我的游戏开始慢慢运行)

下面是我的相关代码:

for each(var bullet:Bullet_ in bullets){
    bullet.x+=2;
    for each(var enemyShip:Enemy in enemies){
        if(bullet.hitTestObject(enemyShip)){
            enemyShip.alpha=0;
            bullet.alpha=0;
            // I want to remove both enemyShip and bullet here.
                    //**EDIT: I solved my problem writing 2 lines :**
                      bullets.splice(bullets.indexOf(bullet),1);
                      enemies.splice(enemies.indexOf(enemyShip),1);
        }
    }

}

有人帮我吗?提前感谢。

像这样使用“removeChild”(我不知道您是如何将它们添加到显示列表中的)

我想我能解决它,我不知道。。。但请尝试以下更改:


@Rajneesh_Gaikwad我还有一个问题,当敌舰到达闪屏左侧时(我的意思是当它们不再可见时),我也需要将它们从我的阵列中移除,我可以在那里使用removeChild吗?
removeChild()
仅从显示列表中移除,而不是从阵列中移除。您必须将它们从数组中删除,并将它们设置为
null
for each(var bullet:Bullet_ in bullets)
{
    bullet.x+=2;

    for each(var enemyShip:Enemy in enemies)
    {            
         if(bullet.hitTestObject(enemyShip))
         {              
              removeChild(bullet);
              removeChild(enemyShip);

              //here update you array(s) accordingly 
         }
    }

}
for each(var bullet:Bullet_ in bullets){

    bullet.x+=2;

    for each(var enemyShip:Enemy in enemies) {
        if (bullet.hitTestObject(enemyShip)) {
            enemyShip.parent.removeChild(enemyShip);                
            bullet.parent.removeChild(bullet);

        }
    }
}