diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-03-02 10:05:05 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-03-02 10:05:05 +0100 |
| commit | 5fa3dbd488523dd02c9363c2f3598363971674eb (patch) | |
| tree | 9daaf7413e4b4939bad1037218da6be2dadaf401 /src | |
| parent | 81041f30fb9f66dbdd482ac6542dee5249232175 (diff) | |
| download | tdde30-5fa3dbd488523dd02c9363c2f3598363971674eb.tar.gz | |
faster speed
Diffstat (limited to 'src')
| -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(); } } |
