Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/06/2011, 17:40
Avatar de jahepi
jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: Problema de programacion de juego con AS3

Cita:
Iniciado por Liurk Ver Mensaje
Bueno, la verdad, soy nuevo en AS y aun no lo llevo muy bien, ademas de ser mi primer lenguaje de programacion. Pondre el ejemplo de lo que quiero hacer: Tengo un objeto (por ejemplo un circulo o cuadrado) y quiero que cuando se haga click a una zona del escenario (encima de otro objeto (por ejemplo una mesa) el objeto se oriente hacia la mesa y vaya hasta encima suyo. Como el programa esta recien empezado se trata de algo unidireccional, pero mi intencion es terminar haciendolo en 4 direcciones posibles. Segun el ejemplo que acabo de exponer, el circulo seria "objeto" y la mesa "zona de la pantalla". El circulo debe poderse orientar (en vez de un circulo imagina una cara o un animal para entender mejor lo de la orientacion) Si he aclarado el funcionamento continuo con las preguntas. Yo creo que es casi seguro que lo correcto es usar while (asi me lo dijo un programador que conozco, no me ayudo mas xk nunca ha trabajado en AS). En tal caso: como arreglo el codigo para que vaya correctamente con while? Y en caso que lo adecuado sean los llamados "timers" me gustaria un poco de explicacion de como se usan y a poder ser como se usarian en este caso. (Aclaro, ya que antes no lo he dicho y estoy contestando desde el celular y no me deja modificar el texto no se por que, que uso while porque al querer un desplazamiento lineal desde el punto inicial hasta encima del objeto-zona y haciendo mas o menos veces la reproduccion de un clip de pelicula (por ejemplo el circulo rodando) en funcion de la distancia de "objeto" a "zona", por lo que me es mucho mas comodo usar while que if.
Tambien debo decir que me gustaria poder contactar a traves de messenger o qualquier otro tipo por el estilo para solucionar dudas de forma mas eficaz.

Muchas gracias por la ayuda prestada y la que aun espero ;D
Hola Liurk !

Ya me queda más claro lo que pretendes hacer, en estos casos es mejor escuchar por el evento ENTER_FRAME de tu movieclip "objeto", este evento se dispara dependiendo de como tengas configurado los cuadros por segundo de tu película, si lo tienes a 12 fps, ese evento se dispara 12 veces por segundo.

Puedes indicarle a tu movieclip objeto que te notifique ese evento, y así poder crear animaciones personalizadas para este o para alguna otra finalidad.

Te dejo un ejemplo, para que te quede más claros los conceptos, nada mas crea un movieclip con nombre de instancia objeto y coloca el código en la raiz, compila y dale clic al escenario para que el objeto siga hasta esa posición.

Código actionscript:
Ver original
  1. // Declaramos nuestras variables para guardar hasta donde se moverá nuestro MovieClip
  2. var xTo:Number;
  3. var yTo:Number;
  4.  
  5. //Registramos el listener para guardar la posición X y Y del mouse al darle clic al escenario
  6. stage.addEventListener(MouseEvent.CLICK, onClick);
  7. function onClick(evt:MouseEvent):void {
  8.     xTo = mouseX;
  9.         yTo = mouseY;
  10. }
  11.  
  12. //Registramos el listener para que nos notifique por cada uno de los cuadros por segundo (fps)
  13. objeto.addEventListener(Event.ENTER_FRAME, onEnterFrameEvent);
  14. function onEnterFrameEvent(event:Event):void {
  15.     event.target.x += (xTo - event.target.x) * 0.5;
  16.     event.target.y += (yTo - event.target.y) * 0.5;
  17. }


Un saludo y suerte !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.