From fd697a3f390ff6738a268434333ff561d5f31847 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sat, 11 Jun 2022 19:56:34 -0500 Subject: [PATCH] fix up falling mechanics Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 --- maps/world1.map | Bin 295488 -> 295488 bytes src/sig/objects/Player.java | 59 +++++++++++++++++------------------- 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/maps/world1.map b/maps/world1.map index e4e52b496b476712e70caf983709354a69d4faf9..c5a0c4ea148619c0f4df6e71a3509c3a703c47cd 100644 GIT binary patch delta 82 zcmX@mB6OfdXoIN0W`lw^%#-6?q!^i}D>Se)Zd6ENp3HB<#mG3>!9{+f!Zl`2Mg|53 kE(UG}hRF^dij(DYM4Iho+U;c+ftU%1nYY`^urQ_p0Ota4<4YS7=~q+^CQO6*6F(tZpE%QQ-!&AR_|< n0~Z4~lw@OIpDZ9FIaxkOq}g7k-Cl+fh?#(xdAq#~3u77p0o)e_ diff --git a/src/sig/objects/Player.java b/src/sig/objects/Player.java index 7059932..487e0c8 100644 --- a/src/sig/objects/Player.java +++ b/src/sig/objects/Player.java @@ -364,35 +364,33 @@ public class Player extends AnimatedObject implements CollisionEntity { boolean sideCollision = false; double startingX=getX(); - if (displacement_x>0) { - for (int x=(int)getX();x0.00001) { + if (displacement_x>0) { + for (int x=(int)getX();xstartingX+displacement_x;x--) { - if (x==getX()) { - continue; + } else { + for (int x=(int)getX();x>startingX+displacement_x;x--) { + if (x==getX()) { + continue; + } + if (checkCollision((x-RabiClone.level_renderer.getX()+getCollisionBox().getX()-getSprite().getWidth()/2),getY()-RabiClone.level_renderer.getY()-getSprite().getHeight()/2+getCollisionBounds().getY2())) { + x_acceleration = 0; + x_velocity = -0.000001; + sideCollision=true; + setX(x+0.1); + break; + } } - if (checkCollision((x-RabiClone.level_renderer.getX()+getCollisionBox().getX()-getSprite().getWidth()/2),getY()-RabiClone.level_renderer.getY()-getSprite().getHeight()/2+getCollisionBounds().getY2())) { - x_acceleration = 0; - x_velocity = Math.signum(x_velocity)*0.000001; - sideCollision=true; - setX(startingX); - break; - } else { - startingX=x; - } } } if (y_velocity==0) { @@ -410,16 +408,15 @@ public class Player extends AnimatedObject implements CollisionEntity { continue; } if (checkCollision(getX()-RabiClone.level_renderer.getX(),y-RabiClone.level_renderer.getY()+getCollisionBox().getY2()-getSprite().getHeight()/2)) { - setY((startingY)); + setY(y-0.1); y_acceleration = 0; y_velocity = 0; groundCollision = true; if (state != State.SLIDE) { state = State.IDLE; } - } else { - startingY=y; - } + break; + } } }/* else { for (int x=(int)getX();x>startingX+displacement_x;x--) {