Cursos y Másters | ||
| Inicio Profesores Aulas Testimonios Cursos Masters Tecnologías Cursos Gratuitos Galería de Proyectos Solicitar Información |
| Página Anterior - Primeros pegotes sobre la ventana | Página Actual - 04 - Primeras imágenes | Página Siguiente - Optimizando la carga de imágenes |
| Índice de cursos Java gratuitos |
Primeras imágenesComo pretendemos dar al juego un aspecto algo vistoso, está claro que no vamos a poder conformarnos con pintar los gráficos mediante las herramientas de Graphics2D de Java. Por ello los gráficos deben ser imágenes externas que iremos cargando según vayamos necesitando El siguiente paso consistirá en cargar una imagen y mostrarla sobre la ventana. Para poder tener transparencias sin complicaciones vamos a utilizar para los bichos imágenes en formato .gif. Para cargar la imagen utilizaremos la clase ImageIO , existente desde el JDK 1.4 La imagen a cargar se llamará bicho.gif y debe estar en un subdirectorio llamado "res" (recursos en inglés) que debe colgar del directorio del proyecto (pero no del directorio del paquete). Es decir, si la clase está en c:\planetalia\curso\java\version04\Invaders.class, entonces el subdirectorio de recursos debe estar en c:\planetalia\curso\java\res\): El gráfico en concreto es este:
1 package version04; 2 /** 3 * Curso B?sico de desarrollo de Juegos en Java - Invaders 4 * 5 * (c) 2004 Planetalia S.L. - Todos los derechos reservados. Prohibida su reproducci?n 6 * 7 * http://www.planetalia.com 8 * 9 */ 10 11 12 import java.awt.Canvas; 13 import java.awt.Dimension; 14 import java.awt.Graphics; 15 import java.awt.event.WindowAdapter; 16 import java.awt.event.WindowEvent; 17 import java.awt.image.BufferedImage; 18 import java.net.URL; 19 20 import javax.imageio.ImageIO; 21 import javax.swing.JFrame; 22 import javax.swing.JPanel; 23 24 public class Invaders extends Canvas { 25 public static final int WIDTH = 800; 26 public static final int HEIGHT = 600; 27 28 29 public Invaders() { 30 JFrame ventana = new JFrame("Invaders"); 31 JPanel panel = (JPanel)ventana.getContentPane(); 32 setBounds(0,0,WIDTH,HEIGHT); 33 panel.setPreferredSize(new Dimension(WIDTH,HEIGHT)); 34 panel.setLayout(null); 35 panel.add(this); 36 ventana.setBounds(0,0,WIDTH,HEIGHT); 37 ventana.setVisible(true); 38 ventana.addWindowListener( new WindowAdapter() { 39 public void windowClosing(WindowEvent e) { 40 System.exit(0); 41 } 42 }); 43 } 44 45 public BufferedImage loadImage(String nombre) { Se puede ver que la gestión de errores es inexistente : cualquier fallo en la carga de la imagen hace que el programa se cierre. Intentaremos mejorar esto posteriormente. También es interesante señalar que en lugar de poner una ruta de archivo "a pedal" utilizamos getClass().getClassLoader().getResource(...), que permite obtener una URL apuntando a un subdirectorio relativo al sitio del cual fue cargada la clase. Esto permite que nuestro programa funcione de forma transparente si luego decidimos convertirlo en applet o en programa autoejecutable de Java utilizando WebStart. El resultado de este programa es el siguiente:
|
||||||||
¿Quieres ser notificado cuando salan nuevos tutoriales y cursos?. Pulsa aquí
| Invaders.java |
| Página Anterior - Primeros pegotes sobre la ventana | Página Actual - 04 - Primeras imágenes | Página Siguiente - Optimizando la carga de imágenes |
| Índice de cursos Java gratuitos |
(c) 2004 Planetalia S.L. Todos los derechos reservados. Prohibida su reproducción