Пример #1
0
 @Override
 public void actionPerformed(ActionEvent e) {
   long now = System.currentTimeMillis();
   long millisSinceLastEvolve = now - timeAfterLastEvolve;
   timeAfterLastEvolve = now;
   if (player1_angle != 0) {
     facade.turn(player1, player1_angle);
   }
   if (player2 != null && player2_angle != 0) {
     facade.turn(player2, player2_angle);
   }
   if (player1_fire && facade.getShips(world).contains(player1)) {
     player1_fire = false;
     facade.fireBullet(player1);
     game.getSound().play("torpedo");
   }
   if (player2 != null && player2_fire && facade.getShips(world).contains(player2)) {
     player2_fire = false;
     facade.fireBullet(player2);
     game.getSound().play("torpedo");
   }
   facade.evolve(world, millisSinceLastEvolve / 1000., this);
   Iterator<Explosion> iter = explosions.iterator();
   while (iter.hasNext()) {
     boolean done = iter.next().evolve(millisSinceLastEvolve / 1000.);
     if (done) iter.remove();
   }
   boolean player1Alive = facade.getShips(world).contains(player1);
   if (player1Alive) {
     if (player2 != null && !facade.getShips(world).contains(player2)) {
       timer.stop();
       msg = "Player 1 wins!";
     } else if (facade.getAsteroids(world).isEmpty() && player2 == null) {
       timer.stop();
       msg = "You win!";
     }
   } else {
     timer.stop();
     if (player2 == null || !facade.getShips(world).contains(player2)) {
       msg = "Asteroids win!";
     } else {
       msg = "Player 2 wins!";
     }
   }
   repaint();
 }