예제 #1
0
파일: WorldView.java 프로젝트: pidigi/apple
 @Override
 protected void paintComponent(Graphics g) {
   super.paintComponent(g);
   Graphics2D g2d = (Graphics2D) g;
   g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
   g2d.drawImage(background, 0, 0, null);
   g2d.setColor(Color.WHITE);
   for (Ship ship : facade.getShips(world)) {
     if (!visualizations.containsKey(ship)) {
       visualizations.put(ship, new ShipVisualization(Color.BLUE, ship, null));
     }
     visualizations.get(ship).draw(g2d);
   }
   for (Asteroid asteroid : facade.getAsteroids(world)) {
     if (!visualizations.containsKey(asteroid)) {
       visualizations.put(asteroid, new AsteroidVisualization(asteroid));
     }
     visualizations.get(asteroid).draw(g2d);
   }
   for (Bullet bullet : facade.getBullets(world)) {
     if (!visualizations.containsKey(bullet)) {
       Ship ship = facade.getBulletSource(bullet);
       visualizations.put(
           bullet, new BulletVisualization(visualizations.get(ship).getColor(), bullet));
     }
     visualizations.get(bullet).draw(g2d);
   }
   for (Explosion explosion : explosions) {
     explosion.draw(g2d);
   }
   if (msg != null) {
     g2d.setColor(Color.WHITE);
     g2d.setFont(g2d.getFont().deriveFont(40f));
     drawCenteredString(g2d, msg);
     g2d.setFont(g2d.getFont().deriveFont(20f));
     drawCenteredString(g2d, "Press ESC to continue ...", getHeight() / 3 * 2);
   }
 }