Flash AS3 - 创建让我失败的BadGuys

时间:2013-06-19 14:09:08

标签: actionscript-3 flash

我只是想复制同样的问题,因为我真的需要回答它

所以,我有一个问题......

我想让每个“x”tyme在我的游戏中成为一个坏人,当它与玩家发生碰撞时,我会失去生命。简单...

但每当它创造一个新的坏人时,之前的那些失去了他们的实例名称或者其他东西,我不会失去生命,因为它不会识别“坏人”实例......

我该怎么办?我希望场上的所有坏人都能让球员失去生命。

我正在使用此代码创建新的坏人:

contadorTempo.addEventListener(TimerEvent.TIMER, intervaloTempo2);//evento para nascimento do mau da direta

function intervaloTempo2(evento:TimerEvent):void
{
  //código para o novo mau nascer
  mau=new Black_Player ();
  addChild (mau);
  mau.rotation = 180; //rotação do mau
  mau.x = 1024; //posição de x do mau é igual a 0
  mau.y = Math.random()*540; //posição y do mau é feita aleatóriamente entre os valores 1 e 540 de y 
  mau.addEventListener(Event.ENTER_FRAME, movermau2);//quando nasce o novo mau, esta   função faz-lo mover-se da direita

}//função para nasimento do mau  da direita    

并且,对于与玩家的碰撞,即时使用此代码:

stage.addEventListener(Event.ENTER_FRAME, perdervida);

function perdervida(evento:Event):void
{

    if( jogador_bom.hitTestObject(mau) == true ){

    vida = vida - 1;
    mau.x = 10000;

    trace("AUCH");

    livetext.text = String(vida); // código para aparecer o número de vidas do jogador no ecra
}

} //função para perder uma vida

PS:抱歉英语,不是我的语言,我希望你能理解我的问题,我希望这个插入代码与其他问题一样好。我只用了20分钟来解决这个问题。第一次来这里。 EEEE

干杯:)

2 个答案:

答案 0 :(得分:0)

您需要将所有创建的“坏人”存储在一个数组中。现在的样子我觉得你每次做一个新人都会覆盖一个'坏人'实例。

答案 1 :(得分:0)

你可以创建一个数组来容纳你的坏人

var _badGuys:Array = new Array();

然后把所有坏人推进去。

function intervaloTempo2(evento:TimerEvent):void {
    mau=new Black_Player ();
    _badGuys.push(mau);
    addChild (mau);
    mau.rotation = 180;
    mau.x = 1024;
    mau.y = Math.random()*540;
    mau.addEventListener(Event.ENTER_FRAME, movermau2);
}

然后你可以创建一个for循环来检查与数组中每个坏人的碰撞......

for (var i:Number = 0; i < _badGuys.length; i++){
    if(jogador_bom.hitTestObject(_badGuys[i])){
        vida = vida - 1;
        mau.x = 10000;
        livetext.text = String(vida);
    }
}