From 767be784dc7fe293bf5c5ee6507df242526be3ed Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Tue, 24 Sep 2019 02:10:06 -0400 Subject: [PATCH] Rag doll is back. --- PhysicsNode.java | 38 +++++++++++++++++++++----------------- 1 files changed, 21 insertions(+), 17 deletions(-) diff --git a/PhysicsNode.java b/PhysicsNode.java index 77051fd..ca3a422 100644 --- a/PhysicsNode.java +++ b/PhysicsNode.java @@ -78,6 +78,8 @@ super("Physics"); live = true; + + gravity = 1; } void Reset() @@ -193,39 +195,41 @@ //staticdynamicsWorld = dynamicsWorld; // dynamicsWorld.setDebugDrawer(new GLDebugDrawer(gl)); + float boxsize = 100; + // Setup a big ground box // { - CollisionShape groundShape = new BoxShape(new Vector3f(200f, 10f, 200f)); + CollisionShape groundShape = new BoxShape(new Vector3f(boxsize, 10f, boxsize)); Transform groundTransform = new Transform(); groundTransform.setIdentity(); groundTransform.origin.set(0f, -floor - 10, 0f); localCreateRigidBody(0f, groundTransform, groundShape); - groundShape = new BoxShape(new Vector3f(200f, 200f, 200f)); + groundShape = new BoxShape(new Vector3f(boxsize, boxsize, boxsize)); groundTransform = new Transform(); groundTransform.setIdentity(); - groundTransform.origin.set(0f, 100, -201f); - //localCreateRigidBody(0f, groundTransform, groundShape); + groundTransform.origin.set(0f, boxsize/2, -boxsize-1); + localCreateRigidBody(0f, groundTransform, groundShape); - groundShape = new BoxShape(new Vector3f(200f, 200f, 200f)); + groundShape = new BoxShape(new Vector3f(boxsize, boxsize, boxsize)); groundTransform = new Transform(); groundTransform.setIdentity(); - groundTransform.origin.set(-201f, 100, 0f); - //localCreateRigidBody(0f, groundTransform, groundShape); + groundTransform.origin.set(-boxsize-1, boxsize/2, 0f); + localCreateRigidBody(0f, groundTransform, groundShape); - groundShape = new BoxShape(new Vector3f(200f, 200f, 200f)); + groundShape = new BoxShape(new Vector3f(boxsize, boxsize, boxsize)); groundTransform = new Transform(); groundTransform.setIdentity(); - groundTransform.origin.set(201f, 100, 0f); - //localCreateRigidBody(0f, groundTransform, groundShape); + groundTransform.origin.set(boxsize+1, boxsize/2, 0f); + localCreateRigidBody(0f, groundTransform, groundShape); - groundShape = new BoxShape(new Vector3f(200f, 200f, 200f)); + groundShape = new BoxShape(new Vector3f(boxsize, boxsize, boxsize)); groundTransform = new Transform(); groundTransform.setIdentity(); - groundTransform.origin.set(0f, 100, 201f); - //localCreateRigidBody(0f, groundTransform, groundShape); + groundTransform.origin.set(0f, boxsize/2, boxsize+1); + localCreateRigidBody(0f, groundTransform, groundShape); - transientDynamicsWorld.setGravity(new Vector3f(0, -gravity, wind)); + transientDynamicsWorld.setGravity(new Vector3f(0.075f, -gravity, wind)); SetDynamics(transientDynamicsWorld); } @@ -251,7 +255,7 @@ // myoffset = dynamicsWorld.getNumCollisionObjects() - 1; // // if (myoffset == 0) - clientResetScene(); +// clientResetScene(); } public RigidBody localCreateRigidBody(float mass, Transform startTransform, CollisionShape shape) @@ -271,7 +275,7 @@ //#ifdef USE_MOTIONSTATE DefaultMotionState myMotionState = new DefaultMotionState(startTransform); - float friction = 1; + float friction = 1f; RigidBodyConstructionInfo cInfo = new RigidBodyConstructionInfo(mass, myMotionState, shape, localInertia, friction); @@ -288,7 +292,7 @@ public void clientResetScene() { -// System.exit(0); + System.exit(0); //#ifdef SHOW_NUM_DEEP_PENETRATIONS BulletStats.gNumDeepPenetrationChecks = 0; BulletStats.gNumGjkChecks = 0; -- Gitblit v1.6.2