Foros del Web » Creando para Internet » Flash y Actionscript »

Movimiento con flechas en AS3 (problema)

Estas en el tema de Movimiento con flechas en AS3 (problema) en el foro de Flash y Actionscript en Foros del Web. Buenas foro! soy nuevo en el foro y bastante novicio en AS3, pero ya he usado AS2 con el cual tuve mis roces en su ...
  #1 (permalink)  
Antiguo 23/02/2011, 22:33
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 8 meses
Puntos: 0
Movimiento con flechas en AS3 (problema)

Buenas foro!
soy nuevo en el foro y bastante novicio en AS3, pero ya he usado AS2 con el cual tuve mis roces en su momento, y queria platicarles lo siguiente.

Resulta que tengo una animacion de un objeto y lo tengo para que se mueva (con el codigo switch (keyCode) y varios case) y tambien que pase a un fotograma en especifico del clip de pelicula que estoy usando (cuyo_mc) para que simule estar caminando.

La cosa esta en que cuando presiono una tecla y la dejo presionada la animacion empieza al instante pero el objeto se mueve una sola vez y se detiene un poco para luego volver a avanzar (supongo que es por la velocidad de intermitencia que puede ser cambiada en el panel de control en la opcion de teclado, algo asi como cuando pones una letra y dejas presionada la tecla, se pone una letra y despues tarda un poco y empiezan a ponerse las demas), y me gustaria que la animacion y el movimiento empezaran en cuanto presionara la tecla indicada.

Por cierto, ya intente el usando variables booleanas e "If", esto funciona perfectamente para lo que quiero pero cuando uso if el objeto puede moverse en diagonal y yo NECESITO que solo se mueva en las 4 direcciones del teclado. Si pudieran ayudarme con este problema, estaria agradecido.

Saludos: Luis (orgulloso nuevo usuario del foro)
  #2 (permalink)  
Antiguo 24/02/2011, 09:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Movimiento con flechas en AS3 (problema)

aaaa si... y justo hoy programando me tome con un pequeño problema.
Todo mi actionscript lo tenia en el primer fotograma de mi archivo, y quisiera poner el codigo en una clase, si alguien me puede orientar para hacerlo de manera rapida, ya que yo intente copiando y pegando todo el codigo (tal cual lo escribi) dentro de una clase y poniendo los import correspondientes para el control del teclado y no me funciono.

Muchas gracias de antemano, aunque no se me halla respondido aun ningun mensaje he aprendido bastante leyendo otros posts del foro.

Saludos: Luis
  #3 (permalink)  
Antiguo 24/02/2011, 10:01
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años, 5 meses
Puntos: 67
Respuesta: Movimiento con flechas en AS3 (problema)

No entiendo lo que dices, debes poner el código que usas ( ó sube tu archivo ) y explícalo para que la gente te ayude.
__________________
{ Flash }
  #4 (permalink)  
Antiguo 24/02/2011, 13:04
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Movimiento con flechas en AS3 (problema)

Código actionscript:
Ver original
  1. stop();
  2. cuyo_mc.gotoAndStop(1);
  3. var speed:int;
  4. speed = 4;
  5. var pressArriba:Boolean = false;
  6. var pressAbajo:Boolean = false;
  7. var pressIzquierda:Boolean = false;
  8. var pressDerecha:Boolean = false;
  9. var velocidad:int = 2;
  10. stage.addEventListener(KeyboardEvent.KEY_DOWN, presionaTecla);
  11. function presionaTecla(e:KeyboardEvent)
  12. {
  13.     switch (e.keyCode)
  14.     {
  15.         case 37 :
  16.             pressIzquierda = true;
  17.             break;
  18.         case 38 :
  19.             pressArriba = true;
  20.             break;
  21.         case 39 :
  22.             pressDerecha = true;
  23.             break;
  24.         case 40 :
  25.             pressAbajo = true;
  26.             break;
  27.     }
  28. }
  29. stage.addEventListener(KeyboardEvent.KEY_UP, liberaTecla);
  30. function liberaTecla(e:KeyboardEvent)
  31. {
  32.     switch (e.keyCode)
  33.     {
  34.         case 37 :
  35.             pressIzquierda = false;
  36.             break;
  37.         case 38 :
  38.             pressArriba = false;
  39.             break;
  40.         case 39 :
  41.             pressDerecha = false;
  42.             break;
  43.         case 40 :
  44.             pressAbajo = false;
  45.             break;
  46.     }
  47. }
  48. var tiempo:Timer = new Timer(10,0);
  49. tiempo.start();
  50. tiempo.addEventListener(TimerEvent.TIMER, mover);
  51. function mover(e:TimerEvent)
  52. {
  53.     if (pressAbajo == true)
  54.     {
  55.         cuyo_mc.y +=  speed;
  56.         cuyo_mc.gotoAndStop("cabajo");
  57.     }
  58.     if (pressArriba == true)
  59.     {
  60.         cuyo_mc.y -=  speed;
  61.         cuyo_mc.gotoAndStop("carriba");
  62.     }
  63.     if (pressIzquierda == true)
  64.     {
  65.         cuyo_mc.x -=  speed;
  66.         cuyo_mc.gotoAndStop("cizquierda");
  67.     }
  68.     if (pressDerecha == true)
  69.     {
  70.         cuyo_mc.x +=  speed;
  71.         cuyo_mc.gotoAndStop("cderecha");
  72.     }
  73.     if (pressDerecha == false && pressArriba == false && pressIzquierda == false && pressAbajo == false)
  74.     {
  75.         cuyo_mc.gotoAndStop("parado");
  76.     }
  77. }
  78.  
  79. cuyo_mc.addEventListener(Event.ENTER_FRAME, paredes);
  80. function paredes(e:Event)
  81. {
  82.     if (cuyo_mc.hitTestObject(paredder_mc))
  83.     {
  84.         cuyo_mc.x=paredder_mc.x-4;
  85.     }
  86.         if (cuyo_mc.hitTestObject(paredizq_mc))
  87.     {
  88.         cuyo_mc.x=paredizq_mc.x+4;
  89.     }
  90.    
  91.         if (cuyo_mc.hitTestObject(paredar_mc))
  92.     {
  93.         cuyo_mc.y=paredar_mc.y+4;
  94.     }
  95.    
  96.         if (cuyo_mc.hitTestObject(paredab_mc))
  97.     {
  98.         cuyo_mc.y=paredab_mc.y-4;
  99.     }
  100. }


aqui esta mi codigo, estan incluidas ahi tambien algunas lineas para que el "cuyo" al hacer contacto con las "paredes" se detenga.

Lo que quiero:
Con este codigo el cuyo se mueve en 8 direcciones (arriba, abajo, izquierda, derecha y sus respectivas diagonales), yo quiero que solo se mueva en las 4 direcciones basicas (arriba, abajo, izquierda, derecha).

Por cierto: todo esto esta en el fotograma uno, en la escena uno, quisiera que esetuviera en un paquete que este ligado al movie clip cuyo, pero no se como escribirlo para que este dentro de un paquete y funcione correctamente.

Gracias por su ayuda, avisenme si se necesita algo mas para que se pueda resolver mi problema.

Saludos: Luis (disculpen por no postear el codigo, crei que con la descripcion era suficiente)

Última edición por Luises; 24/02/2011 a las 13:23
  #5 (permalink)  
Antiguo 24/02/2011, 14:15
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años, 5 meses
Puntos: 67
Respuesta: Movimiento con flechas en AS3 (problema)

Para no tener movimientos diagonales lee aqui:
http://ayumiloveflash.wordpress.com/...down-diagonal/
__________________
{ Flash }
  #6 (permalink)  
Antiguo 24/02/2011, 15:05
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Movimiento con flechas en AS3 (problema)

Cita:
Iniciado por Diegoazul Ver Mensaje
Para no tener movimientos diagonales lee aqui:
[url]http://ayumiloveflash.wordpress.com/2010/08/28/useful-actionscript-3-code-controlling-sprite-movement-left-right-up-down-diagonal/[/url]
esto ayuda, pero el problema viene cuando presiono una tecla y esta tarda en responder, tal y como cuando presionas una "a", no obtienes el "aaaaaaaaa" de inmediato sino que sale la primera "a" y las demas tarda un poco en salir, a esto se le llama retraso de repeticion. no se si me este dando a entender, uso el if porque me da un movimiento elegante, osea, sin retraso de repeticion, cuando el case si lo usa, asi que me gustaria que el objeto se moviera en las 4 direcciones pero sin retraso de repeticion.

Gracias de antemano, se que se solucionara mi problema: Luis

Última edición por Luises; 24/02/2011 a las 16:00
  #7 (permalink)  
Antiguo 25/02/2011, 08:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Movimiento con flechas en AS3 (problema)

Disculpen mi insistencia pero de verdad necesito el codigo. El caso es que necesito un If que mueva al hamster en solo 4 direcciones.
  #8 (permalink)  
Antiguo 25/02/2011, 21:23
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Movimiento con flechas en AS3 (problema)

Oigan maestros... nadie me contesta, me gustaria saber si estoy haciendo algo mal para poder mejorarlo, de no ser asi no me explico como tengo 83 vistas y solo 1 respuesta (muchas gracias por cierto :D)

Sigue mi problema ahi, me gustaria una respuesta.

Luis

Etiquetas: flechas, movimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:44.