예제 #1
0
 @Override
 public void onGameStopped() {
   gdxFrame.setExtendedState(JFrame.ICONIFIED);
   //    	gdxFrame.setVisible(false);
   for (int i = 0; i < game.getAllTeams().size(); ++i) {
     game.getAllTeams().get(i).removeAllAgents();
   }
   game.getPlayerTeams().clear();
   settings.prepareForNewGame();
   logger.log(Level.INFO, "Reset settings");
   launcherInterface.setVisible(true);
   launcherInterface.revalidate();
   launcherInterface.repaint();
 }
예제 #2
0
 @Override
 public void onGameOver() {
   if (launcherInterface == null) { // Si la simulation a été lancée depuis la ligne de commande
     String finalTeams = "";
     for (InGameTeam team : game.getPlayerTeams()) {
       finalTeams += team.getName() + ", ";
     }
     finalTeams = finalTeams.substring(0, finalTeams.length() - 2);
     if (game.getPlayerTeams().size() == 1) {
       logger.log(Level.INFO, "Victoire de : " + finalTeams);
     } else {
       logger.log(Level.INFO, "Ex-Aequo entre les équipes : " + finalTeams);
     }
     game.setGameStopped();
   }
 }
예제 #3
0
  public WarMain() {
    WarGame.addWarGameListener(this);

    availableTeams = new HashMap<>();
    settings = new WarGameSettings();

    // On récupère les équipes
    loadingDialog = new LoadingDialog("Chargement des équipes...");
    loadingDialog.setVisible(true);

    TeamLoader tl = new TeamLoader();

    // On initialise la liste des équipes existantes dans le dossier "teams"
    availableTeams = tl.loadAllAvailableTeams(true);
    // On vérifie qu'au moins une équipe a été chargée
    if (availableTeams.size() > 0) {
      // On lance la launcher interface
      final WarMain warMain = this;
      SwingUtilities.invokeLater(
          new Runnable() {
            public void run() {
              launcherInterface = new WarLauncherInterface(warMain, settings);
              launcherInterface.setVisible(true);

              LwjglApplicationConfiguration configCanvas = new LwjglApplicationConfiguration();
              gdxGame = new WarViewerGdx(800, 600);
              LwjglCanvas gameCanvas = new LwjglCanvas(gdxGame, configCanvas);
              gdxFrame = new JFrame("Warbot 2.5D !!");
              gdxFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
              gdxFrame.addWindowListener(
                  new WindowAdapter() {
                    @Override
                    public void windowClosing(WindowEvent e) {
                      WarGame.getInstance().setGamePaused();
                      int confirmation =
                          JOptionPane.showConfirmDialog(
                              null,
                              "Voulez-vous fermer la fenêtre graphique ?",
                              "Demande de confirmation",
                              JOptionPane.YES_NO_OPTION);
                      if (confirmation == JOptionPane.YES_OPTION)
                        gdxFrame.setExtendedState(JFrame.ICONIFIED);
                      //			            		gdxFrame.setVisible(false);
                      WarGame.getInstance().setGameResumed();
                    }
                  });
              gdxFrame.setAlwaysOnTop(true);
              gdxFrame.add(gameCanvas.getCanvas());
              gdxFrame.setSize(800, 600);
              gdxFrame.setMinimumSize(new Dimension(450, 450));
              gdxFrame.setVisible(true);
              gdxFrame.setExtendedState(JFrame.ICONIFIED);
              //					while(gdxFrame.isVisible())
              //						gdxFrame.setVisible(false);
            }
          });
    } else {
      JOptionPane.showMessageDialog(
          null,
          "Aucune équipe n'a été trouvé dans le dossier \"" + TEAMS_DIRECTORY_NAME + "\"",
          "Aucune équipe",
          JOptionPane.ERROR_MESSAGE);
    }

    loadingDialog.setVisible(false);
  }
예제 #4
0
 public void start() {
   game = WarGame.createGameFromSettings(settings);
   WarLauncher launcher = new WarLauncher(game);
   launcher.executeLauncher();
 }