Estoy entrando en el mundo del ActionScript, algunas cosas me cuestan mucho y de hecho no las entiendo
Mi problema de hoy es que, puedo hacer que mi "personaje" se mueva. Pero se mueve muy forzado. Y al momento de cambiar de direccion se trava. Me gustaria que el movimiento sea un poco mas fluido, principalmente en el cambio de direccion.
Se me ocurrio hacer un timer que cuando apretas una tecla se activa y que cada X tiempo el personaje se mueva hacia una direccion, hasta que el usuario suelte la tecla, cuando el usuario la suelta ya no se mueve en esa direccion.
Logre un poco mas de fluidez en el movimiento, pero el problema esta cuando cambio de direccion, tiene una pequeña trava y se queda quieto durante 1 segundo (aproximadamente).
Alguna recomendacion para arreglar este problema?
Les dejo el proyecto y el codigo a continuacion, muchas gracias!
[flash width=750 height=450]http://img110.xooimage.com/files/9/6/9/shooter-4a19af6.swf[/flash]
Por cierto, ignoren los numeros, los puse solo para revisar algo. Lo importante es el cuadrado verde.
Código ActionScript :
package { import flash.display.MovieClip; import flash.events.KeyboardEvent; import flash.text.TextField; import flash.utils.Timer; import flash.events.TimerEvent; public class Main extends MovieClip { var Tiempo:int; var i:int; var timer:Timer= new Timer(5); var Apretando:Boolean = false; public function temporizador() { timer.start(); timer.addEventListener(TimerEvent.TIMER,Tiempo2); } function Tiempo2(tiempoevent:TimerEvent) { Tiempo++; Texto.text = Tiempo.toString(); } public function Teclado():void { stage.addEventListener(KeyboardEvent.KEY_DOWN, TeclaAbajo); stage.addEventListener(KeyboardEvent.KEY_UP,TeclaArriba); } public function TeclaArriba(teclado:KeyboardEvent):void { Apretando=false; i=0; Tiempo=0; } public function TeclaAbajo(teclado:KeyboardEvent):void { temporizador(); Apretando=true; if(teclado.keyCode == 37&&i<Tiempo) //izquierda { Personaje.x=Personaje.x-5; i++; } else if(teclado.keyCode == 39&&i<Tiempo) //derecha { Personaje.x=Personaje.x+5; i++; } else if(teclado.keyCode == 40&&i<Tiempo) //arriba { Personaje.y=Personaje.y+5; i++; } else if(teclado.keyCode == 38&&i<Tiempo) //Abajo { Personaje.y=Personaje.y-5; i++; } //Ataque1 x360 y320 //Ataque2 x570 y320 //Ataque3 x360 y403 //Ataque4 x570 y403 } } }
Ese es todo el codigo de la clase "Main" (la unica que hay en el proyecto).