DEADSOFTWARE

Add different blocks
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / game / GamePhysics.java
index 631e9d128c4c8b8a55ceab3cd033f8f55a5e16ac..bfde61c6a93f6d503e5d7771a68832d4838319a8 100644 (file)
@@ -34,20 +34,10 @@ public class GamePhysics {
     }
 
     private void movePlayer(Player pl) {
-        pl.position.add(pl.moveX);
-        if (pl.position.x<0 ||
-                pl.position.x+pl.width>gameProc.world.getWidth()*16)
-            pl.position.sub(pl.moveX);
-        if (checkColl(pl.getRect())) {
-            int d = 0;
-            if (pl.moveX.x<0) d=1; else if (pl.moveX.x>0) d=-1;
-            pl.position.x = MathUtils.round(pl.position.x);
-            while (checkColl(pl.getRect())) pl.position.x+=d;
-        }
         pl.position.add(pl.moveY);
         if (checkColl(pl.getRect())) {
             pl.canJump = true;
-            float d = 0;
+            int d = -1;
             if (pl.moveY.y<0) d=1; else if (pl.moveY.y>0) d=-1;
             pl.position.y = MathUtils.round(pl.position.y);
             while (checkColl(pl.getRect())) pl.position.y+=d;
@@ -56,6 +46,16 @@ public class GamePhysics {
             pl.canJump = false;
         }
         pl.moveY.add(gravity);
+        pl.position.add(pl.moveX);
+        if (pl.position.x<0 ||
+                pl.position.x+pl.width>gameProc.world.getWidth()*16)
+            pl.position.sub(pl.moveX);
+        if (checkColl(pl.getRect())) {
+            int d = 0;
+            if (pl.moveX.x<0) d=1; else if (pl.moveX.x>0) d=-1;
+            pl.position.x = MathUtils.round(pl.position.x);
+            while (checkColl(pl.getRect())) pl.position.x+=d;
+        }
         switch (pl.dir) {
             case 0:
                 gameProc.renderer.camTargetPos.x = pl.position.x-gameProc.renderer.camera.viewportWidth+100;