Tengo un problemilla con la ejecución de una función en flash.
Resulta que tengo una función definida en el primer frame de la línea de tiempo. Lo que hace es ver si los láser q dispara mi nave, colisionan con las naves enemigas. Para ello paso 3 parámetros: el nombre del láser (disp0,...,disp5), el nombre del enemigo(enemigo1, enemigo2 o enemigo3) y por último el valor que tiene destruir a cada tipo de enemigo.
El problema es q no me detecta las colisiones.
El código es el siguiente:
Código:
Ésta es la declaración. A continuación cree un MC vacío en la escena (en ese mismo frame) y le añadí el siguiente código en acciones:function colisionLaser(nombreLaser:String, nombreEnemigo:String, valorEnemigo:String){ if (_root.nombreEnemigo.hitTest(_root.nombreLaser)){ trace(nombreEnemigo); myLoop = new Sound(); // cargo el sonido de la explosión myLoop.attachSound("explosion2"); myLoop.start(); _root.puntos = Number(_root.puntos) + _root.valorEnemigo; //incremento la puntuación con el valor del enemigo derribado _root.destruidos += 1; // incremento el nº de enemigos destruidos _root.nombreEnemigo._x += 5; //invierto la animación para dar efecto de explosión en el aire _root.nombreLaser.removeMovieClip(); //borro el láser _root.nombreEnemigo.gotoAndPlay(15); //animación explosión de la nave enemiga } }
Código:
Declaro un enterFrame. Sería correcto?? Algún fallo??onClipEvent(enterFrame){ _root.colisionLaser("disp0", "enemigo1", "valorEnemigo1"); _root.colisionLaser("disp1", "enemigo1", "valorEnemigo1"); _root.colisionLaser("disp2", "enemigo1", "valorEnemigo1"); _root.colisionLaser("disp3", "enemigo1", "valorEnemigo1"); _root.colisionLaser("disp4", "enemigo1", "valorEnemigo1"); _root.colisionLaser("disp0", "enemigo2", "valorEnemigo2"); _root.colisionLaser("disp1", "enemigo2", "valorEnemigo2"); _root.colisionLaser(disp2, enemigo2, valorEnemigo2); _root.colisionLaser(disp3, enemigo2, valorEnemigo2); _root.colisionLaser(disp4, enemigo2, valorEnemigo2); _root.colisionLaser("disp0", "enemigo3", "valorEnemigo3"); _root.colisionLaser("disp1", "enemigo3", "valorEnemigo3"); _root.colisionLaser(disp2, enemigo3, valorEnemigo3); _root.colisionLaser(disp3, enemigo3, valorEnemigo3); _root.colisionLaser(disp4, enemigo3, valorEnemigo3); }
Muchas gracias de antemano.
Saludos!!