summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/se/liu/gusso230/tetris/Board.java12
-rw-r--r--src/se/liu/gusso230/tetris/Direction.java6
-rw-r--r--src/se/liu/gusso230/tetris/TetrisComponent.java20
3 files changed, 38 insertions, 0 deletions
diff --git a/src/se/liu/gusso230/tetris/Board.java b/src/se/liu/gusso230/tetris/Board.java
index 141cacf..8feed1f 100644
--- a/src/se/liu/gusso230/tetris/Board.java
+++ b/src/se/liu/gusso230/tetris/Board.java
@@ -52,6 +52,18 @@ public class Board {
notifyListeners();
}
+ public void move(Direction dir) {
+ switch (dir) {
+ case LEFT:
+ fallingX -= 1;
+ break;
+ case RIGHT:
+ fallingX += 1;
+ break;
+ }
+ notifyListeners();
+ }
+
public int getWidth() {
return width;
}
diff --git a/src/se/liu/gusso230/tetris/Direction.java b/src/se/liu/gusso230/tetris/Direction.java
new file mode 100644
index 0000000..355a3e8
--- /dev/null
+++ b/src/se/liu/gusso230/tetris/Direction.java
@@ -0,0 +1,6 @@
+package se.liu.gusso230.tetris;
+
+public enum Direction {
+ LEFT,
+ RIGHT,
+}
diff --git a/src/se/liu/gusso230/tetris/TetrisComponent.java b/src/se/liu/gusso230/tetris/TetrisComponent.java
index fcc6834..0773ae4 100644
--- a/src/se/liu/gusso230/tetris/TetrisComponent.java
+++ b/src/se/liu/gusso230/tetris/TetrisComponent.java
@@ -2,6 +2,7 @@ package se.liu.gusso230.tetris;
import javax.swing.*;
import java.awt.*;
+import java.awt.event.ActionEvent;
import java.util.EnumMap;
public class TetrisComponent extends JComponent implements BoardListener {
@@ -11,8 +12,27 @@ public class TetrisComponent extends JComponent implements BoardListener {
private Board board;
+ private class MoveAction extends AbstractAction {
+ private Direction dir;
+ private MoveAction(Direction dir) {
+ this.dir = dir;
+ }
+
+ @Override public void actionPerformed(final ActionEvent actionEvent) {
+ board.move(dir);
+ }
+ }
+
public TetrisComponent(final Board board) {
this.board = board;
+
+ this.getInputMap().put(KeyStroke.getKeyStroke('a'), "moveLeft");
+ this.getInputMap().put(KeyStroke.getKeyStroke("LEFT"), "moveLeft");
+ this.getInputMap().put(KeyStroke.getKeyStroke('d'), "moveRight");
+ this.getInputMap().put(KeyStroke.getKeyStroke("RIGHT"), "moveRight");
+
+ this.getActionMap().put("moveLeft", new MoveAction(Direction.LEFT));
+ this.getActionMap().put("moveRight", new MoveAction(Direction.RIGHT));
}
@Override protected void paintComponent(final Graphics g) {