common key action methods

This commit is contained in:
Daniel Langbein 2024-11-07 19:02:31 +01:00
parent 59a7ecff2e
commit d350b1eb1c
Signed by: langfingaz
GPG Key ID: 6C47C753F0823002
3 changed files with 93 additions and 85 deletions

View File

@ -20,9 +20,50 @@ public abstract class AbstractKeyController extends AbstractLevelController impl
additionalSteps(); 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 * Handles the 'key released' event

View File

@ -30,42 +30,17 @@ public class GameKeyController extends AbstractKeyController {
} }
@Override @Override
protected void handleKey(final int keyCode) { protected void up() {
switch (keyCode) { DisplayableElementModel upElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() - 1];
case KeyEvent.VK_UP:
up(); if (upElement.getPriority() < levelModel.getRockford().getPriority()) {
break; this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX(), levelModel.getRockfordPositionY() - 1);
case KeyEvent.VK_DOWN: this.levelModel.getRockford().startRunningUp();
down();
break;
case KeyEvent.VK_LEFT:
left();
break;
case KeyEvent.VK_RIGHT:
right();
break;
} }
} }
private void right() { @Override
DisplayableElementModel rightElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX() + 1][levelModel.getRockfordPositionY()]; protected void down() {
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() {
DisplayableElementModel downElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() + 1]; DisplayableElementModel downElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() + 1];
if (downElement.getPriority() < levelModel.getRockford().getPriority()) { if (downElement.getPriority() < levelModel.getRockford().getPriority()) {
@ -74,12 +49,23 @@ public class GameKeyController extends AbstractKeyController {
} }
} }
private void up() { @Override
DisplayableElementModel upElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() - 1]; protected void left() {
DisplayableElementModel leftElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX() - 1][levelModel.getRockfordPositionY()];
if (upElement.getPriority() < levelModel.getRockford().getPriority()) { if (leftElement.getPriority() < levelModel.getRockford().getPriority()) {
this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX(), levelModel.getRockfordPositionY() - 1); this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() - 1, levelModel.getRockfordPositionY());
this.levelModel.getRockford().startRunningUp(); 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();
} }
} }

View File

@ -31,30 +31,6 @@ public class LevelEditorKeyController extends AbstractKeyController {
this.levelEditorView = levelEditorView; 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 @Override
protected void additionalSteps() { protected void additionalSteps() {
// Hold block change (quick edit) // Hold block change (quick edit)
@ -63,29 +39,34 @@ public class LevelEditorKeyController extends AbstractKeyController {
} }
} }
private void shift() { @Override
this.capLocks = !capLocks; protected void up() {
}
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() {
this.levelModel.decrementCursorYPosition(); this.levelModel.decrementCursorYPosition();
return; 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;
}
} }