El paso anterior resolvía el problema de la carga de imágenes, pero tiene una pinta bastante fea ya que es un
engorro tener que estar comprobando todo el rato en todas las posibles situaciones donde nos pueda surgir
la necesiad de utilizar una imagen si está cargada o no.
Para evitar esto, vamos a encapsular esto en una rutina a la que llamaremos getSprite(), que
recibirá como parámetro un nombre de sprite que necesitemos y devolverá la imagen, cargándola si es necesario.Puesto que
puede haber muchas imágenes, la rutina tendrá que recordar qué sprites están cargados y cuáles no. Para ello
nada mejor que una HashMap que asocie el nombre de cada sprite con su imagen en memoria.
Invaders.java
1 package version06;
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 import java.util.HashMap;
20
21 import javax.imageio.ImageIO;
22 import javax.swing.JFrame;
23 import javax.swing.JPanel;
24
25 public class Invaders extends Canvas {
26 public static final int WIDTH = 800;
27 public static final int HEIGHT = 600;
28