martes, 15 de marzo de 2016

Dinosaurios Corriendo

Dinosaurios corriendo es una primera versión de una animación en java que consiste en unos dinosaurios que van corriendo por la ventana.

Para realizarla usamos una estructura clásica que ya empleamos en proyectos anteriores que consiste en 4 clases. Todo lo hemos creado con el IDE Bluej por lo que es una animación bastante sencilla y fácil de realizar.

Un breve resumen de la estructura del proyecto sería: una clase que contiene el main para poder ejecutarlo fuera del entorno de desarrollo, otra clase que se encarga de la interface gráfica y de la lógica del juego, otra para poder usar imágenes y otra con una serie de coordenadas y otros atributos que nos servirán para poder realizar la animación.

El diagrama de clases y un ejemplo de cómo queda la animación es el siguiente:


Veis que tenemos una ventana con un panel de botones lateral en el lado izquierdo de la misma que nos sirve para poner en funcionamiento la animación o detenerla y también tenemos un botón para crear más dinosaurios. Cuando pulsamos el botón Dinosaurio aparece un dinosaurio en pantalla que va desplazándose hacia la derecha hasta salirse de la ventana. Para lograr esa "animación" de movimiento lo que hacemos es ir alternando varias imágenes de acuerdo a un contador que va contando los ciclos del programa para así dar un pequeño toque de "realismo" y que parezca que va corriendo.

No pongo el código fuente completo de todas las clases para no sobrecargar la página, pero si alguien lo quiere o tiene alguna duda que lo ponga en los comentarios y enseguida os respondo con lo que queráis.

4 comentarios:

  1. Respuestas
    1. Hola!! perdona la tardanza pero ahora estoy muy liado con los exámenes. Este proyecto son 4 clases Animacion2d, ImagenesJuego, Objeto e IGU.

      Te pongo primero el código de Animacion2d que es la encargada de lanzar el juego y que se pueda ejecutar fuera de un IDE, lo que hace esta clase es crear un objeto de la clase IGU para que todo funcione, cuando lo copies y lo compruebes me lo dices y voy poniendo los otros:

      public class Animacion2d
      {
      public static void main(String[] args) {
      new IGU();
      }
      }

      Eliminar
  2. Pon los links en la descripción de tu video, cuando una persona busca información la necesita lo mas rápido posible, es un lio tener que esperar, si de verdad quieres ayudar comparte los links en los videos de youtube. Gracias.

    ResponderEliminar
    Respuestas
    1. no tengo los códigos subidos a ningún sitio, prefiero ponerlos aquí en los comentarios. El código de la clase que contiene el main ya está puesto más arriba, te dejo aquí el código de la clase ImagenesJuego que es la encargada de que podamos utilizar las imágenes en la aplicación:


      import java.awt.image.BufferedImage;
      import java.net.URL;
      import java.util.HashMap;
      import javax.imageio.ImageIO;

      public class ImagenesJuego
      {
      public HashMap Imagenes;//HashMap para guardar las imágenes

      public ImagenesJuego() {
      Imagenes = new HashMap();
      }

      //carga de imagenes
      public BufferedImage loadImage(String nombre) {
      URL url=null;
      try {
      url = getClass().getClassLoader().getResource(nombre);//para no poner toda la dirección de la imagen, la carga de un directorio de donde se cargo la clase
      return ImageIO.read(url);
      } catch (Exception e) {
      System.out.println("No se ha podido cargar la imagen " + nombre +" de "+url);
      System.out.println("El error fue : "+e.getClass().getName()+" "+e.getMessage());
      System.exit(0);
      return null;
      }
      }
      //almacena las imagenes en el hashmap y devuelve la imagen
      public BufferedImage getImagen(String nombre) {
      BufferedImage img = (BufferedImage)Imagenes.get(nombre);
      if (img == null) {
      img = loadImage("Imagenes/"+nombre);
      Imagenes.put(nombre,img);
      }
      return img;
      }

      }

      Eliminar