Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/01/2013, 18:49
Elfede171
 
Fecha de Ingreso: agosto-2011
Ubicación: Montevideo
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: Problema con imágenes

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.