From d350b1eb1cd263754ee73755f2c18e1da80f6044 Mon Sep 17 00:00:00 2001 From: Daniel Langbein Date: Thu, 7 Nov 2024 19:02:31 +0100 Subject: [PATCH] common key action methods --- .../controllers/AbstractKeyController.java | 45 +++++++++++- .../controllers/GameKeyController.java | 62 +++++++--------- .../controllers/LevelEditorKeyController.java | 71 +++++++------------ 3 files changed, 93 insertions(+), 85 deletions(-) diff --git a/src/fr/enssat/BoulderDash/controllers/AbstractKeyController.java b/src/fr/enssat/BoulderDash/controllers/AbstractKeyController.java index aea60a86..63b92619 100644 --- a/src/fr/enssat/BoulderDash/controllers/AbstractKeyController.java +++ b/src/fr/enssat/BoulderDash/controllers/AbstractKeyController.java @@ -20,9 +20,50 @@ public abstract class AbstractKeyController extends AbstractLevelController impl additionalSteps(); } - protected abstract void handleKey(final int keyCode); + protected void handleKey(final int keyCode) { + switch (keyCode) { + case KeyEvent.VK_UP: + up(); + break; + case KeyEvent.VK_DOWN: + down(); + break; + case KeyEvent.VK_LEFT: + left(); + break; + case KeyEvent.VK_RIGHT: + right(); + break; + case KeyEvent.VK_SPACE: + space(); + break; + case KeyEvent.VK_SHIFT: + shift(); + break; + } + } - protected void additionalSteps(){} + protected void up() { + } + + protected void down() { + } + + protected void left() { + } + + protected void right() { + } + + protected void space() { + } + + protected void shift() { + } + + + protected void additionalSteps() { + } /** * Handles the 'key released' event diff --git a/src/fr/enssat/BoulderDash/controllers/GameKeyController.java b/src/fr/enssat/BoulderDash/controllers/GameKeyController.java index b791b5b8..ac2d1069 100644 --- a/src/fr/enssat/BoulderDash/controllers/GameKeyController.java +++ b/src/fr/enssat/BoulderDash/controllers/GameKeyController.java @@ -30,42 +30,17 @@ public class GameKeyController extends AbstractKeyController { } @Override - protected void handleKey(final int keyCode) { - switch (keyCode) { - case KeyEvent.VK_UP: - up(); - break; - case KeyEvent.VK_DOWN: - down(); - break; - case KeyEvent.VK_LEFT: - left(); - break; - case KeyEvent.VK_RIGHT: - right(); - break; + protected void up() { + DisplayableElementModel upElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() - 1]; + + if (upElement.getPriority() < levelModel.getRockford().getPriority()) { + this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX(), levelModel.getRockfordPositionY() - 1); + this.levelModel.getRockford().startRunningUp(); } } - private void right() { - DisplayableElementModel rightElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX() + 1][levelModel.getRockfordPositionY()]; - - if (rightElement.getPriority() < levelModel.getRockford().getPriority()) { - this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() + 1, levelModel.getRockfordPositionY()); - this.levelModel.getRockford().startRunningRight(); - } - } - - private void left() { - DisplayableElementModel leftElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX() - 1][levelModel.getRockfordPositionY()]; - - if (leftElement.getPriority() < levelModel.getRockford().getPriority()) { - this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() - 1, levelModel.getRockfordPositionY()); - this.levelModel.getRockford().startRunningLeft(); - } - } - - private void down() { + @Override + protected void down() { DisplayableElementModel downElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() + 1]; if (downElement.getPriority() < levelModel.getRockford().getPriority()) { @@ -74,12 +49,23 @@ public class GameKeyController extends AbstractKeyController { } } - private void up() { - DisplayableElementModel upElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() - 1]; + @Override + protected void left() { + DisplayableElementModel leftElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX() - 1][levelModel.getRockfordPositionY()]; - if (upElement.getPriority() < levelModel.getRockford().getPriority()) { - this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX(), levelModel.getRockfordPositionY() - 1); - this.levelModel.getRockford().startRunningUp(); + if (leftElement.getPriority() < levelModel.getRockford().getPriority()) { + this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() - 1, levelModel.getRockfordPositionY()); + this.levelModel.getRockford().startRunningLeft(); + } + } + + @Override + protected void right() { + DisplayableElementModel rightElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX() + 1][levelModel.getRockfordPositionY()]; + + if (rightElement.getPriority() < levelModel.getRockford().getPriority()) { + this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() + 1, levelModel.getRockfordPositionY()); + this.levelModel.getRockford().startRunningRight(); } } diff --git a/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java b/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java index 3883cb95..88291724 100644 --- a/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java +++ b/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java @@ -31,30 +31,6 @@ public class LevelEditorKeyController extends AbstractKeyController { this.levelEditorView = levelEditorView; } - @Override - protected void handleKey(final int keyCode) { - switch (keyCode) { - case KeyEvent.VK_UP: - up(); - break; - case KeyEvent.VK_DOWN: - down(); - break; - case KeyEvent.VK_LEFT: - left(); - break; - case KeyEvent.VK_RIGHT: - right(); - break; - case KeyEvent.VK_SPACE: - space(); - break; - case KeyEvent.VK_SHIFT: - shift(); - break; - } - } - @Override protected void additionalSteps() { // Hold block change (quick edit) @@ -63,29 +39,34 @@ public class LevelEditorKeyController extends AbstractKeyController { } } - private void shift() { - this.capLocks = !capLocks; - } - - private void space() { - this.levelModel.triggerBlockChange(this.levelEditorView.getPickedBlockValue()); - } - - private void right() { - this.levelModel.incrementCursorXPosition(); - } - - private void left() { - this.levelModel.decrementCursorXPosition(); - } - - private void down() { - this.levelModel.incrementCursorYPosition(); - } - - private void up() { + @Override + protected void up() { this.levelModel.decrementCursorYPosition(); return; } + @Override + protected void down() { + this.levelModel.incrementCursorYPosition(); + } + + @Override + protected void left() { + this.levelModel.decrementCursorXPosition(); + } + + @Override + protected void right() { + this.levelModel.incrementCursorXPosition(); + } + + @Override + protected void space() { + this.levelModel.triggerBlockChange(this.levelEditorView.getPickedBlockValue()); + } + + @Override + protected void shift() { + this.capLocks = !capLocks; + } }