Exemple #1
0
  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);
  }