DEADSOFTWARE

Even better collision
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / game / GameInputHandler.java
index 313675d414b6788dfa8b1ca935677f87dd0cbd87..102a0f7b003f79471cca77e2dc3c65778debe6a3 100644 (file)
@@ -49,14 +49,31 @@ public class GameInputHandler {
             gameProc.cursorY = (int)(gameProc.player.position.y/16);
             if (gameProc.ctrlMode > 1) gameProc.ctrlMode = 0;
         }
-         if (keyCode == Input.Keys.SPACE &&
-                 gameProc.player.canJump) gameProc.player.moveY.add(0, -8);
+        if (keyCode == Input.Keys.SPACE) {
+             if (gameProc.player.canJump) {
+                 gameProc.player.moveY.add(0, -7);
+             } else if (!gameProc.player.flyMode) {
+                 gameProc.player.flyMode = true;
+                 gameProc.player.moveY.setZero();
+             } else {
+                 gameProc.player.moveY.y = -GamePhysics.PL_SPEED;
+             }
+        }
+        if (keyCode == Input.Keys.CONTROL_LEFT) {
+            gameProc.player.moveY.y = GamePhysics.PL_SPEED;
+        }
     }
 
     public void keyUp(int keyCode) {
         if (keyCode == Input.Keys.A || keyCode == Input.Keys.D) {
             gameProc.player.moveX.x = 0;
         }
+        if (keyCode == Input.Keys.SPACE) {
+            if (gameProc.player.flyMode) gameProc.player.moveY.setZero();
+        }
+        if (keyCode == Input.Keys.CONTROL_LEFT) {
+            if (gameProc.player.flyMode) gameProc.player.moveY.setZero();
+        }
     }
 
     public void mouseMoved(int screenX, int screenY) {