@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(); }