Si ya has programado en Java, te habrás dado cuenta que la forma de cargar la imagen es realmente patética - al
hacerlo dentro del propio paint, lo que estamos haciendo es cargar la imagen cada vez
que se redibuja la ventana, algo no muy hábil precisamente.
Se podría pensar que lo ideal es hacerlo es cargar la imagen en el constructor, pero pensemos por un momento
qué ocurriría si por ejemplo nuestro juego es un applet y tenemos un centenar de imágenes de distintos bichos
y niveles. Al descargar el usuario las clases Java del juego, se quedaría esperando una eternidad a que el programa
descargase todas las imágenes, que realmente a lo mejor no se llegan a utilizar porque el usuario nunca llega a
alcanzar el nivel en el que aparecen
Por este motivo se suele utilizar una técnica llamada carga tardía, que consiste en
cargar la imagen una única vez, pero aplazar este instante hasta el momento en que realmente se hace necesario
visualizar esa imagen
Invaders.java
1 package version05;
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