Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/02/2011, 13:04
Luises
 
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