Posteo el codigo
Código :
import flash.events.KeyboardEvent; var coches:coche; var rivaleses:rivales; // abajo amigo ,var rivaleses:rivales= new rivales(); var velocidadJuego:uint; var crearIDenemigo:uint; var izquierda:Boolean; var derecha:Boolean; var arriba:Boolean; var abajo:Boolean; var timer:Timer = new Timer(1000,1); var numerodevidas:Number= 3 //////////////////////////////////////////////////////////////////////// /* BLOQUEADORES PARA QUE TUERZA Y NO RUEDE */ var inclinadoIzq:Boolean; var inclinadoDer:Boolean; // PARA SABER CUANDO SUELTO TECLA Y NO ESTA PULSADA var pulsadoLeft:Boolean; var pulsadoRight:Boolean; //PARA IMPEDIR QUE CUANDO YO QUIERA //QUE AL SOLTAR LA TECLA LA RANA VUELVA A SU POSICION //ESTA SE PONGA A ROTAR PARA EL OTRO LADO SIN PARAR //EN TRUE ESTA ACTIVADO var bloqueadorRight:Boolean=true; var bloqueadorLeft:Boolean=true; //////////////////////////////////////////////////////////////////////// function iniciarJuego():void { //SPAWNEO A MI PERSONAJE coches=new coche(); //LA POSICION DE MI PERSONAJE coches.x=300; coches.y=370; addChild(coches); coches.chispasizq.visible=false; coches.chispasder.visible=false; velocidadJuego=500; crearIDenemigo=setInterval(crearID,velocidadJuego); Mouse.hide(); stage.stageFocusRect=false; stage.focus=stage; //YA ESTAMOS SOBRE EL TECLADO EN SI stage.addEventListener(KeyboardEvent.KEY_DOWN, presionoTecla, false, 0, true); stage.addEventListener(KeyboardEvent.KEY_UP, sueltoTecla, false, 0, true); //EL LISTENER PARA LA FUNCION MOVER QUE VA A ESCUCHAR A CADA FRAME stage.addEventListener(Event.ENTER_FRAME, mover, false, 0, true); } function mover(e:Event):void { if (derecha&&inclinadoDer==false) { coches.rotation+=20; //CON inclinadoDer Y EN TRUE YA SE MARCA QUE SE HIZO //Y NO VUELVA A HACERSE GRACIAS QUE EL IF LO PIDE //EN FALSE inclinadoDer=true; } if (derecha) { coches.x+=9; //MUEVE EN X Y AL ESCALAR CON +1 ES LO CONTRARIO AL -1 //QUE SUCEDE CON LA IZQUIERDA QUE ES COMO HACER FLIP //coches.scaleX=+1; //QUIERO QUE LA POSICION SE ARREGLE CUANDO SUELTO (DERECHA) pulsadoRight=true; //SACO EL BLOQUEO bloqueadorRight=false; } else { pulsadoRight=false; } //CUANDO ESTA SIN EL BLOQUEO Y LA TECLA DESPULSADO { if (pulsadoRight==false&&bloqueadorRight==false) { //ES ROTACION -10 PORQUE AL HACER (derecha) LE SUME +10 coches.rotation-=20; //Y LUEGO DE QUE ARREGLE LA POSCION PONGO A //bloqueadorRight EN TRUE PARA QUE NO SIGA HACIENDO -10 //GRACIAS A LA CONDICION DEL IF,QUE LO PIDE EN FALSE bloqueadorRight=true; inclinadoDer=false; } //////////////////////TODO LO MISMO PARA LA IZQUIERDA AHORA //////////////////////AL REVES EL MOV. EN X Y LA ROTACION if (izquierda) { coches.x-=9; pulsadoLeft=true; //SCALE EN -1 PORQUE LA RANA //DE POR SI YA VIENE DE LADO DERECHO //coches.scaleX=-1; bloqueadorLeft=false; } else { pulsadoLeft=false; } if (izquierda&&inclinadoIzq==false) { coches.rotation-=20; inclinadoIzq=true; } if (pulsadoLeft==false&&bloqueadorLeft==false) { coches.rotation+=20; bloqueadorLeft=true; inclinadoIzq=false; } if (arriba) { coches.y-=5; } if(abajo) { coches.y+=4; } //PA QUE NO SE LAS PIQUE DEL STAGE if (coches.x>stage.stageWidth-coches.width/2 - 95) { coches.x-=10; coches.chispasder.visible=true; }else{ coches.chispasder.visible=false; } if (coches.x<coches.width/2 + 95) { coches.x+=10; coches.chispasizq.visible=true; }else{ coches.chispasizq.visible=false; } if (coches.y>stage.stageHeight-coches.height/2) { coches.y-=4; } if (coches.y<0 + coches.height/2) { coches.y+=5; } } function sueltoTecla(event:KeyboardEvent):void { switch (event.keyCode) { case Keyboard.LEFT : izquierda=false; break; case Keyboard.RIGHT : derecha=false; break; case Keyboard.UP : arriba=false; break; case Keyboard.DOWN : abajo=false; break; default : break; } } function presionoTecla(event:KeyboardEvent):void { switch (event.keyCode) { case Keyboard.LEFT : izquierda=true; break; case Keyboard.RIGHT : derecha=true; break; case Keyboard.UP : arriba=true; break; case Keyboard.DOWN : abajo=true; break; default : break; } } function crearID():void { rivaleses=new rivales(); var espacioalaizq:int= 0 + pasto1.width + borde1.width + rivaleses.width/2; var espacioalader:int= stage.stageWidth - (pasto2.width + borde2.width + rivaleses.width/2); var num:int = Math.floor(Math.random() * (espacioalader - espacioalaizq + 1)) + espacioalaizq; //QUE ESTE EN Y FUERA DE LA PANTALLA Y ALEATORIAMENTE EN X rivaleses.y=10; rivaleses.x= num; rivaleses.addEventListener(Event.ENTER_FRAME,dropEnemy); //rivaleses.addEventListener(Event.ENTER_FRAME,dropEnemy); // ESTO ES PARA AGREGARLOA LA DISPLAY LIST Y QUE APAREZCA SINO NO CAE miniauto.addEventListener(Event.ENTER_FRAME,avanzaMini); addChild(rivaleses); //rivaleses.addEventListener(Event.ENTER_FRAME, vidas); //coches.addEventListener(Event.ENTER_FRAME, vidas); //stage.addEventListener(Event.ENTER_FRAME, vidas); } function dropEnemy(e:Event):void { //esto es para hacer mas facil la caida y que caiga de a 10 x frame //y se le podria agregar cosas de hit detection // CADA movieclip clase CAYENDO esta observado por el enterframe var caer:rivales=rivales(e.target); //PARA LA VELOCIDAD DE LA CAIDA DE LOS ENEMIGOS //A MAYOR VALOR MAS RAPIDO CAEN caer.y+=10; if (caer.hitTestObject(coches) && coches.alpha== 1) { //coches.visible=false; coches.alpha= 0 numerodevidas-=1; //trace(numerodevidas); vidas(); } } function avanzaMini(e:Event):void { if(miniauto.hitTestObject(bandera.bandera_llegada)) { miniauto.removeEventListener(Event.ENTER_FRAME,avanzaMini); clearInterval(crearIDenemigo); timer.addEventListener(TimerEvent.TIMER,llamame_a_la_otra); timer.start(); }else{ miniauto.y-=0.5; } } function llamame_a_la_otra(e:TimerEvent):void{ llegada_grande.addEventListener(Event.ENTER_FRAME,banderaCuadros); } function banderaCuadros(e:Event):void { llegada_grande.y+=17; if(coches.hitTestObject(llegada_grande.llegada)) { llegada_grande.removeEventListener(Event.ENTER_FRAME,banderaCuadros); rivaleses.removeEventListener(Event.ENTER_FRAME,dropEnemy); removeChild(rivaleses); stage.removeEventListener(Event.ENTER_FRAME, mover); rayas.stop(); coches.chispasder.visible=false; coches.chispasizq.visible=false; } } function vidas():void { coches.x=300; coches.y=300; ///////ACA //TENGO //MI //PROBLEMA/////////////////////////////////////////// if(coches.alpha<1){ coches.alpha+=0.1; } ///////ACA //ESTABA //MI //PROBLEMA//////////////////////////////////////////// if (numerodevidas== 2){ vida3.visible=false; } if (numerodevidas== 1){ vida2.visible=false; } if (numerodevidas== 0) { vida1.visible=false; } //coches.alpha=0.3; /*var trasparentandose:Array=new Array("0.1","0.9","0.1","0.9","0.1","0.9","0.1","0.9"); for(var i = 0; i < trasparentandose.length; i++){ var numeros = trasparentandose; coches.alpha= numeros; } */ } iniciarJuego()El problema yo lo tengo en la funcion Vidas, lo que esta marcado entre /////////////
porque no me lo hace funcionar mas de una vez, o sea detecta UNA SOLA VEZ la colision y hace el truquito de la transparencia pero con las demas vidas nada.. y quise hacerlo mediante un listener en la funcion dropenemy pero me da peor resultado. Puede tambien ser que el problema este en otro lado '???
Gracias, Lio