Comunidad de diseño web y desarrollo en internet online

Lanzar Pelota

Citar            
MensajeEscrito el 12 Ene 2010 06:57 am
Hola, me gustaria si alguien me pudiera guiar en la metodologia de lanzar un moviclip teniendo como referencia de angulo y fuerza la velocidad y angulo del raton al hacer el lanzamiento (pinchas objeto y empiece starDrag() y cuando suelte el objeto salga disparado en funcion de la velocidad de movimiento y el angulo). Gracias.

Por tronab

1 de clabLevel



 

msie8
Citar            
MensajeEscrito el 13 Ene 2010 04:28 pm
en el onPress de la pelota guarda en 2 variables la posición xy de la pelota, esta sería la posición inicial
y en onRelease haces tus calculos con las posiciones finales y las variables antes guardadas, con eso tendrías distancia y ángulo después con esos valores sacas tus formulas para crear la animación.

algo como

Código ActionScript :

pelota.onPress=function(){
  xini = this._x;
  yini = this._y;
  startDrag(this);
}
pelota.onRelease=function(){
  xfin = this._x;
  yfin = this._y;
  stopDrag();
//muchos cálculos o llamar a función
}

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 14 Ene 2010 02:59 am
Las funciones para calcular angulación o distancia no son "muchas" nasho, aquí las dejo:

Código ActionScript :

function calcAngle(x1:Number, x2:Number, y1:Number, y2:Number):Number { 
   var x3 = x2-x1; 
   var y3 = y2-y1; 
   if (x3 == 0) { 
      return (Math.atan2(y3, x3)*(180/Math.PI))-90; 
   } else { 
      return Math.atan2(y3, x3)*(180/Math.PI); 
   } 
} 
// Función para calcular que tan cerca esta el misil  
function calcDistance(x1:Number, x2:Number, y1:Number, y2:Number):Number { 
   var x3 = x2-x1; 
   var y3 = y2-y1; 
   return Math.sqrt(x3*x3+y3*y3); 
} 


La primera usa el concepto básico de trigonometría para despejar un ángulo, lo trabaja en radiane y luego lo pasa a grados. El segundo es meramente el teorema pitagórico.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 14 Ene 2010 07:02 am
Gracias hernan, asi no tengo que armarlas yo. Ahora solo me falta una funcion que yo he pensado hacer con setInterval y con getTime para hacer un lanzamiento con el raton y que tenga en cuenta la velocidad con la que lo muevo y suelto para que calcule la fuerza de la pelota(calcularia los puntos en un periodo de tiempo determinado justo antes del onRelease y en funcion de su diferencia calcular la fuerza). Si alguien sabe algo o sabe que pueda ser asi lo agradeceria mucho. Saludos

Por tronab

1 de clabLevel



 

msie8
Citar            
MensajeEscrito el 14 Ene 2010 02:12 pm
Pues con la función calcDistance sabes cuanto distancia ha hecho. Yo lo que haría es:

1. Al soltar el mouse inicio el cálculo desde la posición obtenida hace unos segundos atrás (Porque esta arrastrando)
2. Cálculo la distancia entre el punto de inicio y el final
3. Según cuanta distancia existe doy más o menos fuerza al lanzamiento
4. Para calcular el ángulo uso la función calcAngle
5. Inicializo el movimiento
6. Mato el movimiento si el usuario hace "click" sobre la pelota

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 14 Ene 2010 02:24 pm
^^ era para darle la idea y dejar que el intentara hacer los cálcuos...

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.