Home
Username:
Password:
Java: Introduction to Java Programming (Español) Tutorials

Animación Sencilla / Programa "DoomedVessel"




Visitors to VTC.com will be able to view all introductory videos for each training course.
Free Trial Members will gain access to first three chapters for each training course.
Full Access Members have full access to VTC.com’s entire library of video tutorials.


Learn More

Subtitles of the Movie

En ésta lección, veremos cómo crear una animación utilizando una imagen desde un archivo y una sentencia "switch-case" para modificar dinámicamente el procedimiento de la animación. Ésta es la Clase "DoomedVessel", la cual corresponde a una Clase "Frame" que carga y despliega una Clase "DoomedVesselCanvas". Un aspecto ligeramente diferente al ejemplo anterior es el hecho de que no nos preocupamos por almacenar el componente en una Referencia antes de agregarlo a la ventana. La sentencia "new" se utiliza directamente dentro del Método "add". Éste funciona correctamente, excepto en los casos en los cuales necesita hacer un llamado al Método del componente antes de agregarlo a la ventana. La variable "state" se inicializa con el valor 0. Podríamos realizar ésta inicialización en las declaraciones, pero algunas veces, es mejor hacerlo en el Constructor. Para éste programa, necesitamos dos objetos "Image". El primero corresponde a la imagen utilizada para dibujar los cuadros de la animación y el segundo contiene la imagen de un bote que atravesará la ventana. Una vez más, hacemos un llamado a la Clase "ImageLoader" que desarrollamos anteriormente para cargar la imagen del archivo del bote y crear un objeto "Image" que lo contenga. Para crear la animación, se crea y se ejecuta un Hilo de Ejecución. Observe que el Método "sleep" contiene una variable llamada "pause", la cual determina la duración de la interrupción temporal, la cual vamos a variar durante la ejecución del programa. Como hicimos anteriormente, aquí revisamos si hay un cambio en el tamaño de la ventana y creamos un nuevo objeto "Image" dentro del objeto "Rectangle" en caso de que éste haya cambiado. La sentencia "switch" se basa en la variable llamada "state". En el Constructor, el valor fue inicializado en 0, así que el bloque de código será ejecutado primero para la sentencia "case 0". Éste proceso configura el valor de las variables "x" y "y" de tal manera que el bote se ubica fuera de la ventana; en realidad, éste se encuentra oculto en la parte izquierda. El valor de la variable "pause" está configurado en 5000, así que la siguiente interrupción temporal durará 5 segundos completos; el valor de la variable "state" está configurado en 1, así que la próxima vez que se ejecute éste código, se ejecutará la siguiente sentencia "case". Esto es lo que ocurrirá. En primer lugar, el bote se dibujará oculto en la parte izquierda de la ventana. En segundo lugar, el Método "sleep" detendrá la ejecución del Hilo por 5 segundos completos. En tercer lugar, el Método "sleep" se reactiva y hace un llamado al Método "repaint", lo cual provoca otro llamado al Método "update", el cual a su vez provoca que se ejecute el código de la sentencia "case 1". En éste punto del programa, el bote se encuentra en movimiento. El tiempo de la interrupción temporal es de 33 milisegundos, el cual, como vimos, es un tiempo bastante apropiado para la animación. La ubicación del bote se desplaza 1 píxel hacia la derecha. Éste proceso sucederá una y otra vez, con el bote dibujado en cada posición, hasta que el valor de la variable "x" sea igual al de la mitad del ancho de la ventana. Cuando esto suceda, el valor de la variable "state" se configura en 2, de tal forma que la siguiente vez que se ejecute éste código, se ejecutará éste otro código. En éste momento, la interrupción temporal es de 150 milisegundos, lo cual retarda la suma. Ahora se ajusta el valor de la variable "y". El bote ya no se mueve horizontalmente, sino que desciende lentamente en dirección vertical. Éste proceso continúa hasta que el bote se pierde de vista por completo en la parte inferior de la ventana. En éste punto, la variable "state" se configura en 0 y todo el proceso se inicia nuevamente. Una vez más, el bote se ubica oculto a la izquierda. El tiempo de la interrupción temporal es de nuevo de 5 segundos. El valor de la variable "nextState" se encuentra configurado en 1 para hacer que el bote regrese a la ventana. La única función del Método "paint" es rellenar el fondo y después dibujar el bote en la posición establecida. Al principio, no vemos nada, ya que debemos esperar la interrupción temporal de 5 segundos. Luego, el bote sale de su escondite. Es difícil encontrar imágenes como ésta en las imágenes de dominio público, así que yo mismo dibujé ésta. Como ya he dicho, no tengo buen gusto y con esto se comprueba también que no tengo ningún talento artístico. El bote ha alcanzado el punto medio del programa y cambia del estado 1 al estado 2 y se dirige hacia abajo. Una vez se encuentra allí abajo, éste regresa al estado 0 y obtenemos nuevamente una espera de 5 segundos; allí viene otra vez. Por cierto, ésta imagen es un archivo de tipo "gif" con algunos píxeles transparentes definidos en ella. Ésta es la razón por la cual podemos ver el color de fondo a través de la imagen, pues de lo contrario, ésta sería una imagen cuadrada. Observe que el bote no se ajusta a la nueva posición de la parte inferior de la ventana porque sólo calculamos el valor de la variable "y" en la sentencia "case 0". Sin embargo, en la sentencia "case 2" el bote se dirige hacia abajo y sigue haciéndolo hasta que alcanza el fondo de la ventana. Cuando el bote comienza otra vez, todos los elementos se han ajustado al nuevo tamaño de la ventana porque hemos regresado al estado 0. Para corregir éste comportamiento, podemos reiniciar el estado 0 cada vez que se cambia el tamaño de la ventana. éste comportamiento, podemos reiniciar el estado 0 cada vez que se cambia el tamaño de la ventana.

Tutorial Information

Course: Java: Introduction to Java Programming (Español)
Author: Arthur Griffith
SKU: 33644
ISBN: 1-932808-86-8
Release Date: 2005-09-22
Duration: 8.5 hrs / 92 lessons
Captions: Available on CD and Online University
Compatibility: Vista/XP/2000, OS X, Linux
QuickTime 7, Flash 8

VTC Sign up & Benefits

  • Unlimited Access
  • 98,729 Video Tutorials (23,265 free)
  • Video Available as Flash or QuickTime
  • Over 1026 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available