Merge pull request #391 from NemesisMate/patch-5

Fixed BetterCharacterControl "flickering" when not moving.
This commit is contained in:
normen 2015-12-18 16:54:39 +01:00
commit fd4f9789cc

View File

@ -171,6 +171,8 @@ public class BetterCharacterControl extends AbstractPhysicsControl implements Ph
} }
TempVars vars = TempVars.get(); TempVars vars = TempVars.get();
Vector3f currentVelocity = vars.vect2.set(velocity);
// dampen existing x/z forces // dampen existing x/z forces
float existingLeftVelocity = velocity.dot(localLeft); float existingLeftVelocity = velocity.dot(localLeft);
float existingForwardVelocity = velocity.dot(localForward); float existingForwardVelocity = velocity.dot(localForward);
@ -194,7 +196,7 @@ public class BetterCharacterControl extends AbstractPhysicsControl implements Ph
//add resulting vector to existing velocity //add resulting vector to existing velocity
velocity.addLocal(localWalkDirection); velocity.addLocal(localWalkDirection);
} }
rigidBody.setLinearVelocity(velocity); if(currentVelocity.distance(velocity) > FastMath.ZERO_TOLERANCE) rigidBody.setLinearVelocity(velocity);
if (jump) { if (jump) {
//TODO: precalculate jump force //TODO: precalculate jump force
Vector3f rotatedJumpForce = vars.vect1; Vector3f rotatedJumpForce = vars.vect1;