No se como darte las gracias, la verdad me funcionó impecablemente.
Sabía que me faltaba algún concepto, jamás imaginé en algo como eso: armar el mapa entero, capturarlo en una imagen y mostrarlo cuando está pronto. No solo no me lo imaginé, sino que además no sabía como hacerlo. Investigué y encontré.
Muchísimas gracias, ya hace más de una semana que estaba trancado y nadie sabía responder a mi duda.
Por si alguno que entra a este tema con la misma duda, esto fue lo que me ayudó (lo encontré en otro foro):
Cita: La tecnica doble buffer nos permite hacer una animación libre de parpadeos, cuando llamas al método repaint() en un applet, este llama a update() el cual borra toda la pantalla y redibuja llamando al método paint(), esto lo hace directamente en la pantalla, por lo que se nota un feo parpadeo :-[
Para realizar el Doble Buffer, sobrescribimos el método update(), así relizaremos todo el pintado en una pantalla virtual asi no se visualizara hasta que nosotros volquemos esta pantalla virtual a la pantalla real.
Código:
Image buffer;
Graphics pantallaVirtual;
//creamos una imagen
buffer = createImage(Ancho, Alto);
// creamos la pantalla virtual para el Doble Buffer
pantallaVirtual = buffer.getGraphics();
Ahora todo lo que hagamos en la pantallaVirtual se verá reflejado en la imagen buffer, podemos pintar un círculo, rectangulo
o una imagen previamente cargada en la pantallaVirtual.
Código:
public void paint(Graphics g) {
g.drawImage(fondo,0,0,this); // dibujamos el fondo
g.setColor(new Color(240, 240, 255));
g.drawOval(10,10,200,200);
}
public void update(Graphics g) {
// dibujamos en la pantalla virtual, esto se hace en memoria
// no se visualizara
paint(pantallaVirtual);
// se vuelca la imagen "buffer" en la pantalla real
g.drawImage(buffer, 0, 0,640,400, this);
}
Tema resuelto,
Saludos.