summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/se/liu/gusso230/tetris/Board.java24
-rw-r--r--src/se/liu/gusso230/tetris/BoardTester.java13
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();
}
}