diff options
Diffstat (limited to 'src/se')
| -rw-r--r-- | src/se/liu/gusso230/tetris/Board.java | 12 | ||||
| -rw-r--r-- | src/se/liu/gusso230/tetris/Direction.java | 6 | ||||
| -rw-r--r-- | src/se/liu/gusso230/tetris/TetrisComponent.java | 20 |
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) { |
