Lo que preciso es que el misil tenga la misma velocidad sin importar donde se le haga clic (en el ejemplo que daré el misil cambia su velocidad según a la distancia que se le haga clic de su punto de salida. Se el motivo por que pasa eso pero me he trabado y no logro encontrar una solución para que haga lo que quiero).
Código ActionScript :
import flash.events.Event;
stage.addEventListener (MouseEvent.CLICK, clicIzquierdo);
addEventListener( Event.ENTER_FRAME, Main );
personaje_jugador.x = 300;
personaje_jugador.y = 300;
charu.x=personaje_jugador.x;
charu.y=personaje_jugador.y;
function rotar()
{
var grados:Number = 180/Math.PI;
var radianes:Number = Math.atan2 (personaje_jugador.y-root.mouseY,personaje_jugador.x-root.mouseX);
var giro:Number = radianes*grados;
personaje_jugador.rotation = giro;
charu.rotation = giro;
}
var nuevabolafuego:BolaFuego = new BolaFuego;
function dispararArmaB ()
{
var r:Rectangle = charu.getRect(stage);
var centro:Point = new Point(r.x+r.width/2,r.y+r.height/2);
var grados:Number = 180/Math.PI;
var radianes:Number = Math.atan2 (personaje_jugador.y-root.mouseY,personaje_jugador.x-root.mouseX);
var giro:Number = radianes*grados;
nuevabolafuego.rotation = giro;
addChild(nuevabolafuego).x=centro.x;
addChild(nuevabolafuego).y=centro.y;
}
function bolaFuegoActiva ()
{
return (nuevabolafuego.x < 2000);
return (nuevabolafuego.y < 2000);
}
var ratonY = 0;
var ratonX = 0;
function clicIzquierdo (e:MouseEvent):void
{
ratonY =personaje_jugador.y-root.mouseY;
ratonX =personaje_jugador.x-root.mouseX;
trace("click Izquierdo");
dispararArmaB ();
}
function Main( e:Event ):void
{
rotar();
if (bolaFuegoActiva ())
{
nuevabolafuego.y -=ratonY;
nuevabolafuego.x -=ratonX;
}
}Descargar archivo fla
