Beispiel #1
0
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    if (gameData == null) return;

    Graphics2D g2d = (Graphics2D) g;
    AffineTransform previousTransform = g2d.getTransform();

    g2d.transform(getVTM());

    double visibleWorldY = gameData.getLanderPosition().getY().doubleValue() * 1.33;
    double zoomFactor = (double) getHeight() / visibleWorldY;

    if (zoomFactor < 1) {
      g2d.translate(
          -(gameData.getLanderPosition().getX().intValue() * zoomFactor - (getWidth() / 2)), 0);
      g2d.scale(zoomFactor, zoomFactor);
    } else {
      g2d.translate(-(gameData.getLanderPosition().getX().intValue() - (getWidth() / 2)), 0);
    }

    for (GameObject gameObj : gameData.getGameObjects()) {
      gameObj.draw(g2d);
    }

    currentAT = g2d.getTransform();
    g2d.setTransform(previousTransform);

    if (selecting) {
      Color save = g.getColor();
      g.setColor(Color.yellow);
      g.drawRect(
          startScreenPoint.x,
          startScreenPoint.y,
          currentScreenPoint.x - startScreenPoint.x,
          currentScreenPoint.y - startScreenPoint.y);
      g.setColor(save);
    }
  }