|
|
@ -42,26 +42,51 @@ public class EgoController extends ObjectController { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* moves ego up by {@link SpaceInvadersLevel#EGOSPEED}. |
|
|
|
* @param kc KeyEvent to process (ignored) |
|
|
|
* @param ego the ego object |
|
|
|
*/ |
|
|
|
public void onUp(KeyEvent kc, GameObject ego) { |
|
|
|
ego.setVX(0.0); |
|
|
|
ego.setVY(-SpaceInvadersLevel.EGOSPEED); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* moves ego down by {@link SpaceInvadersLevel#EGOSPEED}. |
|
|
|
* @param kc KeyEvent to process (ignored) |
|
|
|
* @param ego the ego object |
|
|
|
*/ |
|
|
|
public void onDown(KeyEvent kc, GameObject ego) { |
|
|
|
ego.setVX(0.0); |
|
|
|
ego.setVY(SpaceInvadersLevel.EGOSPEED); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* moves ego left by {@link SpaceInvadersLevel#EGOSPEED}. |
|
|
|
* @param kc KeyEvent to process (ignored) |
|
|
|
* @param ego the ego object |
|
|
|
*/ |
|
|
|
public void onLeft(KeyEvent kc, GameObject ego) { |
|
|
|
ego.setVY(0.0); |
|
|
|
ego.setVX(-SpaceInvadersLevel.EGOSPEED); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* moves ego right by {@link SpaceInvadersLevel#EGOSPEED}. |
|
|
|
* @param kc KeyEvent to process (ignored) |
|
|
|
* @param ego the ego object |
|
|
|
*/ |
|
|
|
public void onRight(KeyEvent kc, GameObject ego) { |
|
|
|
ego.setVY(0.0); |
|
|
|
ego.setVX(SpaceInvadersLevel.EGOSPEED); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* sets speed to 0.0 |
|
|
|
* @param kc KeyEvent to process (ignored) |
|
|
|
* @param ego the ego object |
|
|
|
*/ |
|
|
|
public void onStop(KeyEvent kc, GameObject ego) { |
|
|
|
ego.setVY(0.0); |
|
|
|
ego.setVX(0.0); |
|
|
@ -72,7 +97,7 @@ public class EgoController extends ObjectController { |
|
|
|
|
|
|
|
/** checks the position and respects level boundaries and own radius or width/height set on constructor. |
|
|
|
* |
|
|
|
* @return true if the object reached the boundaries of the level, false otherwise |
|
|
|
* @return true if the object reached the boundaries of the level, false otherwise. |
|
|
|
*/ |
|
|
|
public boolean stopObject() { |
|
|
|
// check whether ego object is at level boundaries |
|
|
@ -93,7 +118,7 @@ public class EgoController extends ObjectController { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** behavior for shooting on key space |
|
|
|
/** behavior for shooting on key space. Creates a new shot using {#link SimpleShotController} with a {@link RectObject}. |
|
|
|
* |
|
|
|
* @param e KeyEvent of the space key |
|
|
|
* @param ego EgoObject instance (used to determine position of shot object's start) |
|
|
@ -119,7 +144,7 @@ public class EgoController extends ObjectController { |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* updates position based on key events (mouse currently ignored) |
|
|
|
* updates position based on key events (mouse currently ignored). |
|
|
|
*/ |
|
|
|
public void updateObject() { |
|
|
|
|
|
|
@ -140,23 +165,14 @@ public class EgoController extends ObjectController { |
|
|
|
released = false; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Generelle Idee: Wenn eine Taste gedrückt wird wird sie gespeichert. wenn die zuvor |
|
|
|
* gespeicherte Taste wieder losgelassen wird stoppt das Ego-Objekt. Falls vor dem Loslassen |
|
|
|
* eine andere Taste gedrückt wird, wird diese gespeichert und die alte vergessen. Dh das |
|
|
|
* loslassen der alten Taste stoppt das Objekt nicht. Spezialfall: space, das loslassen von |
|
|
|
* space stoppt das Objekt nicht! |
|
|
|
*/ |
|
|
|
|
|
|
|
if (pressed == true) { |
|
|
|
lastPressedKey = pressedKey; |
|
|
|
pressedKey = kc; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Nur eine losgelassene Taste die auch vorher gedrückt wurde stoppt das Objekt. Eine |
|
|
|
* losgelassene Taste die nicht vorher gedrückt wurde bzw vergessen wurde stoppt das Objekt |
|
|
|
* nicht |
|
|
|
/* |
|
|
|
* Only if the released key is the same as the before pressed one, it stops the ego object movement. |
|
|
|
*/ |
|
|
|
if (released == true) { |
|
|
|
if (pressedKey != null) { |
|
|
@ -194,7 +210,7 @@ public class EgoController extends ObjectController { |
|
|
|
|
|
|
|
// shot |
|
|
|
if (kc == KeyEvent.VK_SPACE) { |
|
|
|
// space is not registered! Releasing space does not stop the egoobject |
|
|
|
// space is not registered! Releasing space does not stop the ego object |
|
|
|
this.onSpace(e, ego); |
|
|
|
} |
|
|
|
} |
|
|
|