Hotfixed collision drag, still needs a lot of testing
This commit is contained in:
parent
17e0714913
commit
5157a675af
@ -30,7 +30,7 @@ public class Collider {
|
|||||||
* Your faithful student,<br />
|
* Your faithful student,<br />
|
||||||
* Kostyl.
|
* Kostyl.
|
||||||
*/
|
*/
|
||||||
private static final float TIME_STEP_COEFFICIENT_FOR_CURRENTLY_COLLIDING_BODIES = 1e-1f;
|
private static final float TIME_STEP_COEFFICIENT_FOR_CURRENTLY_COLLIDING_BODIES = 1f/*1e-1f*/;
|
||||||
|
|
||||||
public static void performCollisions(
|
public static void performCollisions(
|
||||||
List<? extends Collideable> colls,
|
List<? extends Collideable> colls,
|
||||||
@ -291,6 +291,8 @@ public class Collider {
|
|||||||
collision.a.changeVelocityOnCollision(du_a);
|
collision.a.changeVelocityOnCollision(du_a);
|
||||||
collision.b.changeVelocityOnCollision(du_b);
|
collision.b.changeVelocityOnCollision(du_b);
|
||||||
|
|
||||||
|
separate(collision, n, m_a, m_b);
|
||||||
|
|
||||||
// JGML is still to fuck
|
// JGML is still to fuck
|
||||||
Vectors.release(n);
|
Vectors.release(n);
|
||||||
Vectors.release(v_a);
|
Vectors.release(v_a);
|
||||||
@ -301,6 +303,23 @@ public class Collider {
|
|||||||
Vectors.release(du_a);
|
Vectors.release(du_a);
|
||||||
Vectors.release(du_b);
|
Vectors.release(du_b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void separate(
|
||||||
|
Collision collision,
|
||||||
|
Vec3 normal, float aRelativeMass, float bRelativeMass
|
||||||
|
) {
|
||||||
|
final float margin = 1e-4f;
|
||||||
|
|
||||||
|
Vec3 displacement = Vectors.grab3();
|
||||||
|
|
||||||
|
displacement.set(normal).mul(margin).mul(bRelativeMass);
|
||||||
|
collision.a.moveAsCollideable(displacement);
|
||||||
|
|
||||||
|
displacement.set(normal).mul(margin).mul(aRelativeMass).negate();
|
||||||
|
collision.b.moveAsCollideable(displacement);
|
||||||
|
|
||||||
|
Vectors.release(displacement);
|
||||||
|
}
|
||||||
|
|
||||||
private static void advanceTime(
|
private static void advanceTime(
|
||||||
Collection<? extends Collideable> colls,
|
Collection<? extends Collideable> colls,
|
||||||
|
Reference in New Issue
Block a user