From 1b54c07d3cb4589187e59463e291cc139933f1c4 Mon Sep 17 00:00:00 2001 From: 0nlineSam Date: Thu, 7 Nov 2024 14:33:13 +0100 Subject: [PATCH] Created a superclass for GameKeyController and LevelEditorKeyController --- .../controllers/GameKeyController.java | 32 ++++----------- .../controllers/KeyController.java | 41 +++++++++++++++++++ .../controllers/LevelEditorKeyController.java | 35 +++++----------- 3 files changed, 59 insertions(+), 49 deletions(-) create mode 100644 src/fr/enssat/BoulderDash/controllers/KeyController.java diff --git a/src/fr/enssat/BoulderDash/controllers/GameKeyController.java b/src/fr/enssat/BoulderDash/controllers/GameKeyController.java index a7821b1d..e385c9e3 100644 --- a/src/fr/enssat/BoulderDash/controllers/GameKeyController.java +++ b/src/fr/enssat/BoulderDash/controllers/GameKeyController.java @@ -7,7 +7,6 @@ import fr.enssat.BoulderDash.controllers.BoulderAndDiamondController; import fr.enssat.BoulderDash.helpers.AudioLoadHelper; import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; /** @@ -18,8 +17,7 @@ import java.awt.event.KeyListener; * @author Colin Leverger * @since 2015-06-19 */ -public class GameKeyController implements KeyListener { - private LevelModel levelModel; +public class GameKeyController extends KeyController { private RockfordUpdateController updatePosRockford; /** * Class constructor @@ -27,18 +25,14 @@ public class GameKeyController implements KeyListener { * @param levelModel Level model */ public GameKeyController(LevelModel levelModel, AudioLoadHelper audioLoadHelper) { - this.levelModel = levelModel; + super(levelModel); new BoulderAndDiamondController(levelModel, audioLoadHelper); this.updatePosRockford = new RockfordUpdateController(levelModel); } - /** - * Handles the 'key pressed' event - * - * @param e Key event - */ public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); + LevelModel levelModel = getLevelModel(); switch (keyCode) { // Direction: UP @@ -47,7 +41,7 @@ public class GameKeyController implements KeyListener { if (upElement.getPriority() < levelModel.getRockford().getPriority()) { this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX(), levelModel.getRockfordPositionY() - 1); - this.levelModel.getRockford().startRunningUp(); + levelModel.getRockford().startRunningUp(); } break; @@ -58,7 +52,7 @@ public class GameKeyController implements KeyListener { if (downElement.getPriority() < levelModel.getRockford().getPriority()) { this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX(), levelModel.getRockfordPositionY() + 1); - this.levelModel.getRockford().startRunningDown(); + levelModel.getRockford().startRunningDown(); } break; @@ -69,7 +63,7 @@ public class GameKeyController implements KeyListener { if (leftElement.getPriority() < levelModel.getRockford().getPriority()) { this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() - 1, levelModel.getRockfordPositionY()); - this.levelModel.getRockford().startRunningLeft(); + levelModel.getRockford().startRunningLeft(); } break; @@ -80,28 +74,18 @@ public class GameKeyController implements KeyListener { if (rightElement.getPriority() < levelModel.getRockford().getPriority()) { this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() + 1, levelModel.getRockfordPositionY()); - this.levelModel.getRockford().startRunningRight(); + levelModel.getRockford().startRunningRight(); } break; } } - /** - * Handles the 'key released' event - * - * @param e Key event - */ @Override public void keyReleased(KeyEvent e) { - this.levelModel.getRockford().startStaying(); + getLevelModel().getRockford().startStaying(); } - /** - * Handles the 'key typed' event - * - * @param e Key event - */ @Override public void keyTyped(KeyEvent e) { // Do nothing. diff --git a/src/fr/enssat/BoulderDash/controllers/KeyController.java b/src/fr/enssat/BoulderDash/controllers/KeyController.java new file mode 100644 index 00000000..d2ddb5a2 --- /dev/null +++ b/src/fr/enssat/BoulderDash/controllers/KeyController.java @@ -0,0 +1,41 @@ +package fr.enssat.BoulderDash.controllers; + +import fr.enssat.BoulderDash.models.LevelModel; + +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + +public abstract class KeyController implements KeyListener { + private LevelModel levelModel; + + public KeyController(LevelModel levelModel) { + this.levelModel = levelModel; + } + + /** + * Handles the 'key pressed' event + * + * @param e Key event + */ + public abstract void keyPressed(KeyEvent e); + + /** + * Handles the 'key released' event + * + * @param e Key event + */ + @Override + public abstract void keyReleased(KeyEvent e); + + /** + * Handles the 'key typed' event + * + * @param e Key event + */ + @Override + public abstract void keyTyped(KeyEvent e); + + public LevelModel getLevelModel() { + return levelModel; + } +} diff --git a/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java b/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java index 78f98d3f..7d5b7585 100644 --- a/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java +++ b/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java @@ -4,7 +4,6 @@ import fr.enssat.BoulderDash.models.LevelModel; import fr.enssat.BoulderDash.views.LevelEditorView; import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; /** @@ -15,8 +14,7 @@ import java.awt.event.KeyListener; * @author Valerian Saliou * @since 2015-06-21 */ -public class LevelEditorKeyController implements KeyListener { - private LevelModel levelModel; +public class LevelEditorKeyController extends KeyController { private LevelEditorView levelEditorView; private boolean capLocks; @@ -27,43 +25,40 @@ public class LevelEditorKeyController implements KeyListener { * @param levelEditorView Level editor view */ public LevelEditorKeyController(LevelModel levelModel, LevelEditorView levelEditorView) { - this.levelModel = levelModel; + super(levelModel); this.capLocks = false; this.levelEditorView = levelEditorView; } - /** - * Handles the 'key pressed' event - * - * @param e Key event - */ + @Override public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); + LevelModel levelModel = getLevelModel(); switch (keyCode) { // Direction: UP case KeyEvent.VK_UP: - this.levelModel.decrementCursorYPosition(); + levelModel.decrementCursorYPosition(); break; // Direction: DOWN case KeyEvent.VK_DOWN: - this.levelModel.incrementCursorYPosition(); + levelModel.incrementCursorYPosition(); break; // Direction: LEFT case KeyEvent.VK_LEFT: - this.levelModel.decrementCursorXPosition(); + levelModel.decrementCursorXPosition(); break; // Direction: RIGHT case KeyEvent.VK_RIGHT: - this.levelModel.incrementCursorXPosition(); + levelModel.incrementCursorXPosition(); break; // Key: SPACE case KeyEvent.VK_SPACE: - this.levelModel.triggerBlockChange(this.levelEditorView.getPickedBlockValue()); + levelModel.triggerBlockChange(this.levelEditorView.getPickedBlockValue()); break; case 16: @@ -73,25 +68,15 @@ public class LevelEditorKeyController implements KeyListener { // Hold block change (quick edit) if(capLocks) { - this.levelModel.triggerBlockChange(this.levelEditorView.getPickedBlockValue()); + levelModel.triggerBlockChange(this.levelEditorView.getPickedBlockValue()); } } - /** - * Handles the 'key released' event - * - * @param e Key event - */ @Override public void keyReleased(KeyEvent e) { // Do nothing. } - /** - * Handles the 'key typed' event - * - * @param e Key event - */ @Override public void keyTyped(KeyEvent e) { // Do nothing.