private void actualizaTodo() { if (!this.controlador.dibujarEscenario()) { return; } int ancho = this.controlador.getAnchoEscenario() * this.pixelesUnidad; int alto = this.controlador.getAltoEscenario() * this.pixelesUnidad; if ((ancho <= 0) || (alto <= 0)) { System.err.println( "Error gráfico: el escenario tiene dimensiones negativas. No se actualiza"); return; } if ((this.anchoEscenario != ancho) || (this.altoEscenario != alto)) { this.anchoEscenario = ancho; this.altoEscenario = alto; redimensionar(); } Graphics2D original = (Graphics2D) this.escenario.getGraphics(); VolatileImage buffer = createVolatileImage(this.anchoEscenario, this.altoEscenario); Graphics grafico = buffer.getGraphics(); grafico.setPaintMode(); grafico.setColor(this.colorSuelo); grafico.fillRect(0, 0, this.escenario.getWidth(), this.escenario.getHeight()); int diametroX = this.controlador.getAnchoEscenario() / 2; int diametroY = this.controlador.getAltoEscenario() / 2; IRegion region = calcularRegion(diametroX, diametroY); IPunto origen = region.getPosicionInferiorIzquierda(); dibujarCeldas(grafico, region, origen); dibujarEntidades(grafico, region, origen); original.drawImage(buffer, 0, 0, this); }