Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2007, 12:47
kirof
 
Fecha de Ingreso: noviembre-2004
Mensajes: 47
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Juegode navecitas: problemas con funciones en Flash8

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!!