diff options
| -rw-r--r-- | src/se/liu/gusso230/tetris/Board.java | 24 | ||||
| -rw-r--r-- | src/se/liu/gusso230/tetris/BoardTester.java | 13 |
2 files changed, 22 insertions, 15 deletions
diff --git a/src/se/liu/gusso230/tetris/Board.java b/src/se/liu/gusso230/tetris/Board.java index 1486d7b..f405884 100644 --- a/src/se/liu/gusso230/tetris/Board.java +++ b/src/se/liu/gusso230/tetris/Board.java @@ -1,8 +1,7 @@ package se.liu.gusso230.tetris; -import com.google.gson.Gson; - import javax.swing.*; +import java.awt.event.ActionEvent; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; @@ -31,6 +30,8 @@ public class Board { private HighscoreList highscores; private File highscoreFile; + private Timer timer; + private int timerDelay; private List<BoardListener> boardListeners; private final static Random RND = new Random(); @@ -52,9 +53,18 @@ public class Board { // highscores.addHighscore(new Highscore("a", 100)); // highscores.addHighscore(new Highscore("c", 300)); // highscores.addHighscore(new Highscore("b", 200)); + + final Action tick = new AbstractAction() { + @Override public void actionPerformed(final ActionEvent actionEvent) { + tick(); + } + }; + + timerDelay = 250; + timer = new Timer(timerDelay, tick); } - public void tick() { + private void tick() { if (state == GameState.RUNNING && !paused) { if (falling == null) { createFalling(); @@ -205,6 +215,10 @@ public class Board { default: break; } + if (clearedLines > 0) { + timerDelay *= (int) 0.95; + timer.setDelay(timerDelay); + } } private void moveDownFrom(int line) { @@ -255,6 +269,10 @@ public class Board { return points; } + public Timer getTimer() { + return timer; + } + public GameState getState() { return state; } diff --git a/src/se/liu/gusso230/tetris/BoardTester.java b/src/se/liu/gusso230/tetris/BoardTester.java index e24173e..00c036d 100644 --- a/src/se/liu/gusso230/tetris/BoardTester.java +++ b/src/se/liu/gusso230/tetris/BoardTester.java @@ -1,8 +1,5 @@ package se.liu.gusso230.tetris; -import javax.swing.*; -import java.awt.event.ActionEvent; - public class BoardTester { public static void main(String[] args) { HighscoreList highscores = new HighscoreList(); @@ -11,14 +8,6 @@ public class BoardTester { TetrisViewer viewer = new TetrisViewer(board); viewer.show(); - final Action tick = new AbstractAction() { - @Override public void actionPerformed(final ActionEvent actionEvent) { - board.tick(); - } - }; - - final Timer clockTimer = new Timer(250, tick); - clockTimer.setCoalesce(true); - clockTimer.start(); + board.getTimer().start(); } } |
