Пример #1
0
  @Override
  public void actionPerformed(ActionEvent arg0) {
    ArrayList<Bullet> bs = boat.getBulletsList();

    for (int i = 0; i < bs.size(); i++) {
      Bullet b = (Bullet) bs.get(i);
      if (b.isVisible()) b.move();
      else bs.remove(i);
    }

    for (int i = 0; i < buoys.size(); i++) {
      Buoy b = (Buoy) buoys.get(i);
      if (!(b.isVisible())) {
        gamePoint += b.getPoint();
        buoys.remove(i);
        // System.out.println("Remaining Buoys: " + buoys.size());
      }
    }

    for (int i = 0; i < bonuses.size(); i++) {
      Bonus b = (Bonus) bonuses.get(i);
      if (!(b.isVisible())) {
        gamePoint += b.getPoint();
        bonuses.remove(i);
      }
    }
    // level olayı burada hallediliyor!!
    // en son level kalmadığında highscore' a bak yazdır
    if (nextLevelFlag) {
      System.out.println("next Level a geçtin");
      currentLevel++;
      System.out.println("level: " + currentLevel);
      initGame(); // oyunu restart edecek
      nextLevelFlag = false;
      if (currentLevel
          > LAST_LEVEL) { // tüm levellar bittikten sonra terminate/ana menüye dönüş, tam bu anda
                          // high score yazdır. Ancak oyunu bitirenler highscore table a girmeye hak
                          // kazanır.
        // High scores to table
        try {
          writeHighScoreToFile(computeTotalScore());
        } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
        currentLevel = 1;
        gamePoint = 0;
        initGame();
        CardLayout c2 = (CardLayout) (mgf.getCanvas().getLayout());
        c2.show(mgf.getCanvas(), "GUI");
        // System.exit(0);
      }
    } else {

    }

    boat.move();
    checkCollisions();
    repaint();
  }