我只是想复制同样的问题,因为我真的需要回答它
所以,我有一个问题......
我想让每个“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
干杯:)
答案 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);
}
}