El paso anterior nos dejó con una saturación de bichos que había que solucionar. Para ello, vamos a probar inicialmente
una estrategia consistente en borrar a mano toda la ventana antes de pintar el bicho correspondiente.
El único cambio consiste en las siguientes líneas dentro de paint()
Invaders.java
. . .
76
77 public void paint(Graphics g) {
78 g.setColor(getBackground());
Si ejecutamos ahora el programa, veremos que el bicho cambia de posición tan rápidamente que apenas da tiempo
a verlo. Está claro que hay que insertar artificialmente una pausa en el bucle del programa, para que el usuario
tenga tiempo de ver algo en pantalla:
Actualizar el "estado del mundo" o el "escenario">
Si es preciso, refrescar la pantalla
Esperar un intervalo de tiempo
Volver al punto 1
El intervalo de tiempo - como no podría ser de otra manera - será una constante que definiremos a nivel global
e inicialmente fijaremos en 50 ms :
Invaders.java
. . .
24
25 public class Invaders extends Canvas {
26 public static final int WIDTH = 640;
27 public static final int HEIGHT = 480;
28 public static final int SPEED = 10;
29
. . .
87
88 public void game() {
89 while (isVisible()) {
90 updateWorld();
91 paint(getGraphics());