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