Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/03/2010, 10:10
Avatar de Kottore
Kottore
 
Fecha de Ingreso: octubre-2007
Mensajes: 170
Antigüedad: 16 años, 8 meses
Puntos: 8
Respuesta: "Disparar" en flash [AS2]

Hola. Es interesante tú aplicación y no es tan complicado como parece.

Simplemente a la punta de la pistola pon un "puntito" y lo haces movieClip (yo lo llamo cpInicio) y a partir de ahí determinas el X y el Y inicial. Para saber a dónde llegará toma el X y el Y del mouse y ya está ^_^

Para hacerlo avanzar toma el X final y resta el X inicial dividido entre la cantidad de ciclos que quieres que avance la bala y listo ^_^


Código ActionScript:
Ver original
  1. var varXInicial:Number;     //Se declara la variable que guardará el X inicial
  2. var varXfinal:Number;       //Se declara la variable que guardará el Y final
  3. var varYinicial:Number;     //Se declara la variable que guardará el Y inicial
  4. var varYfinal:Number;       //Se declara la variable que guardará el Y inicial
  5. var varVelocidad:Number=10; //Entre menor sea el número más rápido va
  6.  
  7. onMouseDown=function(){         //Si haces click inicia la función
  8.     varXinicial=cpInicio._x;    //Se captura el X inicial con respecto a la bolita lavanda
  9.     varYinicial=cpInicio._y;    //Se captura el Y inicial con respecto a la bolita lavanda
  10.     varXfinal=_xmouse;          //Se captura el X final con respecto a la posición del mouse
  11.     varYfinal=_ymouse;          //Se captura el Y final con respecto a la posición del mouse
  12.    
  13.     attachMovie("cpBala", "cpBala", 1, {_x:varXinicial, _y:varYinicial}); // se pone la bala negra en el escenario
  14.    
  15.     var xProrcion:Number=(varXfinal-varXinicial)/varVelocidad;  //Se hace la operación para saber qué camino X recorrerá la bala
  16.     var yProrcion:Number=(varYfinal-varYinicial)/varVelocidad;  //Se hace la operación para saber qué camino Y recorrerá la bala
  17.    
  18.     this.onEnterFrame=function(){   //Inicia la función de cada ciclo
  19.         if(cpBala._x<varXfinal){    //Si el X de la bala es menor al X del mouse entonces...
  20.             cpBala._x+=xProrcion;   //la bala avanzará X la porción calculada
  21.             cpBala._y+=yProrcion;   //la bala avanzará y la porción calculada
  22.         }else{  //sI x de la bala es igual o mayor al x del mouse entonces...
  23.             delete(this.onEnterFrame)//Se elimina la función del ciclo y termina de avanzar la bala
  24.         }
  25.     }
  26. }

Acá te dejo el ejemplo.

Saludos ^_^
__________________
これは僕のウェブだよね。