-2

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

所以,我这里有个问题...

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

但是每当它创建一个新的坏人时,以前的人都会失去他们的实例名称或其他东西,我不会失去生命,因为它不识别“坏人”实例......

我必须做什么?我希望场上所有的坏人都能让玩家失去生命。

我正在使用这段代码来创建新的坏人:

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 分钟才弄清楚这一点。第一次来这里。eee

干杯:)

4

2 回答 2

0

您需要将所有创建的“坏人”存储在一个数组中。现在看起来的方式我认为你每次创建一个新实例时都会覆盖一个“坏人”实例。

于 2013-06-19T14:14:12.447 回答
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);
    }
}
于 2013-06-20T18:29:58.617 回答