Comunidad de diseño web y desarrollo en internet online

Movimiento fluido con listeners

Citar            
MensajeEscrito el 06 Ago 2008 05:24 pm
Hola a todos, esta vez escribo porque tengo la siguiente duda,

Resulta que estoy haciendo mi primer juego en Flash (o el primero de este tipo), se trata de uno tipo Mario Bros. donde estoy controlando el movimiento del personaje por medio de listeners pero tengo un problemita, y es que al moverlo, el tiempo de respuesta es lenta, primero da un paso y cuando el sistema detecta que estoy dejando presionada la tecla empieza a moverlo constantemente con confianza.

Cómo puedo hacer que este se mueva fluidamente?
Que no espere a que pase medio segundo para empezar a moverlo?

Estoy moviendo al personaje de esta manera, es lo que llevo hasta ahora:

Código :

keyListener.onKeyDown = function() {
   if(Key.getCode() == 37){//Izquierda
      tiempoParaMover.start();
   }else if(Key.getCode() == 38){//Arriba
      salto._visible = true;
      if(!saltando){
         saltando = true;
         salto.gotoAndPlay(1);
      }
   }else if(Key.getCode() == 39){//Derecha
      caminarIzq._visible = false;
      caminarDer._visible = true;
      normal._visible      = false;
      if(escenario._x > -513.0){
         escenario._x -= 3;         
      }
   }else if(Key.getCode() == 40){//Abajo
      //Aún no he definido qué hacer con esta tecla
   }
};
keyListener.onKeyUp = function() {
   if(Key.getCode() == 37){
      caminarIzq._visible = false;
      caminarDer._visible = false;
      normal._visible      = true;
   }else if(Key.getCode() == 38){
      //trace("Solté Arriba");
   }else if(Key.getCode() == 39){
      caminarIzq._visible = false;
      caminarDer._visible = false;
      normal._visible      = true;
   }else if(Key.getCode() == 40){
      //trace("Solté Abajo");
   }
};


No se si fui del todo claro, y muchas gracias de antemano.

Por JohnRestrepo

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Ago 2008 06:08 pm
Que quiere decir esta instrucción?
Donde la tienes declarada?

Código :

tiempoParaMover.start();


Me parece que aquí está la clave

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 06 Ago 2008 07:38 pm
jajaja, lo siento, vi algo por ahí rondando y lo intenté usar, se me olvidó borrarla.

Este sería el código verdadero

Código :

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
   if(Key.getCode() == 37){//Izquierda
      caminarIzq._visible = true;
      caminarDer._visible = false;
      normal._visible      = false;
      if(escenario._x < 1063){
         escenario._x += 3;
      }
   }else if(Key.getCode() == 38){//Arriba
      salto._visible = true;
      if(!saltando){
         saltando = true;
         salto.gotoAndPlay(1);
      }
   }else if(Key.getCode() == 39){//Derecha
      caminarIzq._visible = false;
      caminarDer._visible = true;
      normal._visible      = false;
      if(escenario._x > -513.0){
         escenario._x -= 3;         
      }
   }else if(Key.getCode() == 40){//Abajo
      //Aún no he definido qué hacer con esta tecla
   }
};
keyListener.onKeyUp = function() {
   if(Key.getCode() == 37){
      caminarIzq._visible = false;
      caminarDer._visible = false;
      normal._visible      = true;
   }else if(Key.getCode() == 38){
      //trace("Solté Arriba");
   }else if(Key.getCode() == 39){
      caminarIzq._visible = false;
      caminarDer._visible = false;
      normal._visible      = true;
   }else if(Key.getCode() == 40){
      //trace("Solté Abajo");
   }
};
Key.addListener(keyListener);

Por JohnRestrepo

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2008 12:15 am
Ya entiendo lo que dices, tuve que pegar tu código para darme cuenta... bueno tendrás que hacerlo con el viejo método del onEnterFrame:

Código :

this.onEnterFrame = function():Void {
   
 if (Key.isDown(Key.RIGHT)) {
    this._x += 10;
 }
 
};

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 08 Ago 2008 07:16 pm
Funcionó perfecto, muchísimas gracias, te debo una muy grande

Por JohnRestrepo

21 de clabLevel



 

firefox

 

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