Hola, muy buenas a todo el mundo.
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:
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
}
}
É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:
Código:
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);
}
Declaro un enterFrame. Sería correcto?? Algún fallo??
Muchas gracias de antemano.
Saludos!!