summaryrefslogtreecommitdiffstats
path: root/src/se
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-02 09:56:21 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-03-02 09:56:21 +0100
commit81041f30fb9f66dbdd482ac6542dee5249232175 (patch)
treea60da04093e052879b67f21e685212bb8af0a147 /src/se
parent918017906477fba95334a8581d23509e28d8274c (diff)
downloadtdde30-81041f30fb9f66dbdd482ac6542dee5249232175.tar.gz
pause
Diffstat (limited to 'src/se')
-rw-r--r--src/se/liu/gusso230/tetris/Board.java8
-rw-r--r--src/se/liu/gusso230/tetris/TetrisViewer.java19
2 files changed, 23 insertions, 4 deletions
diff --git a/src/se/liu/gusso230/tetris/Board.java b/src/se/liu/gusso230/tetris/Board.java
index 311d736..1486d7b 100644
--- a/src/se/liu/gusso230/tetris/Board.java
+++ b/src/se/liu/gusso230/tetris/Board.java
@@ -17,6 +17,7 @@ public class Board {
}
private GameState state = GameState.RUNNING;
+ private boolean paused = false;
private SquareType[][] squares;
private int width;
private int height;
@@ -54,8 +55,7 @@ public class Board {
}
public void tick() {
- if (state == GameState.RUNNING) {
- gameOver();
+ if (state == GameState.RUNNING && !paused) {
if (falling == null) {
createFalling();
} else {
@@ -282,6 +282,10 @@ public class Board {
this.state = state;
}
+ public void togglePaused() {
+ paused = !paused;
+ }
+
/**
* Randomize all squares inside this board.
*/
diff --git a/src/se/liu/gusso230/tetris/TetrisViewer.java b/src/se/liu/gusso230/tetris/TetrisViewer.java
index 369991e..3ba6e0f 100644
--- a/src/se/liu/gusso230/tetris/TetrisViewer.java
+++ b/src/se/liu/gusso230/tetris/TetrisViewer.java
@@ -8,10 +8,13 @@ public class TetrisViewer {
private JMenuBar menuBar;
private ImageComponent imageComponent;
private TetrisComponent tetrisComponent;
+ private Board board;
- public TetrisViewer(Board board) {
+ public TetrisViewer(final Board board) {
+ menuBar = setupMenuBar();
imageComponent = new ImageComponent("images/hello_world.png");
tetrisComponent = new TetrisComponent(board);
+ this.board = board;
board.addListener(tetrisComponent);
}
@@ -34,12 +37,24 @@ public class TetrisViewer {
};
quit.addActionListener(quitAction);
menuBar.add(file);
+
+ final JMenu edit = new JMenu("Edit");
+ final JMenuItem pause = new JMenuItem("Pause");
+ edit.add(pause);
+ final Action pauseAction = new AbstractAction() {
+ @Override public void actionPerformed(final ActionEvent actionEvent) {
+ board.togglePaused();
+ }
+ };
+ pause.addActionListener(pauseAction);
+ menuBar.add(edit);
+
return menuBar;
}
public void show() {
JFrame frame = new JFrame("Tetris");
- frame.setJMenuBar(setupMenuBar());
+ frame.setJMenuBar(menuBar);
frame.setLayout(new BorderLayout());
frame.setVisible(true);