Comments (7)
Interesting that the issue doesn't appear in HelloCharacter
.
from libbulletjme.
It appears in HelloGhost
, but not if I configure the character's gravity to 59.9 psu/sec2 instead of 60.
And note that HelloCharacter
uses the default gravity, which is 29.4 psu/sec2.
from libbulletjme.
Sure enough:
bool btKinematicCharacterController::onGround() const
{
return (fabs(m_verticalVelocity) < SIMD_EPSILON) && (fabs(m_verticalOffset) < SIMD_EPSILON);
}
from libbulletjme.
btKinematicCharacterController
is chock full of thoughtless hacks and copypasta. It could benefit greatly from a complete rewrite. But not today! The less I modify it, the happier I'll be. Ideally, I'd simply add an isOnGround()
method to the jmeKcc
subclass and invoke that in place of btKinematicCharacterController::onGround()
.
btKinematicCharacterController
contains a few protected fields that seem relevant:
m_wasOnGround
is unfortunately set using the existingonGround()
method, so no help there.full_drop
has the opposite sense ofonGround()
. Unfortunately it is updated only ifm_verticalVelocity <= 0.0
, so it's not useful during the rising half of a jump.m_wasJumping
has the opposite sense ofonGround()
.
Of those 3 fields, m_wasJumping
seems closest to providing the desired functionality. I've run a few tests, and it looks good.
from libbulletjme.
Okay, the fix is in Libbulletjme v14.5.0. In hindsight, I wish I'd made it return onGround() && !m_wasJumping;
---less risk of a false positive that way.
from libbulletjme.
As written, TestPhysicsCharacter
, TestQ3
, and TestWalkingChar
do not invoke onGround()
---they permit jumping even when the character is airborne. In order to test this fix, those apps need minor modifications
from libbulletjme.
There's an issue with the current solution because it returns true
after the character steps off the supporting surface. See the Forum discussion: https://hub.jmonkeyengine.org/t/linear-velocity-inconsistency-on-collisionlistener/47446/4
from libbulletjme.
Related Issues (20)
- Latest versions does not exist in maven HOT 7
- test whether a point is inside a `CollisionShape`
- Why there are no natives in Maven? HOT 2
- expose more SolverInfo properties HOT 1
- Mac M1 support HOT 12
- Strange behaviour when combining CollisionListeners with .addToIgnoreList HOT 4
- Double-precision support for non-rigid body physics objects HOT 10
- java.lang.NoClassDefFoundError: com/simsilica/mathd/Matrix3d HOT 4
- SIGSEGV crash in `btRaycastVehicle::updateFriction()` HOT 15
- PhysicsRigidBody lots of excess logging HOT 2
- Please revise your math classes to not be final. (Compatibility with other Math APIs) HOT 15
- where is CollisionShapeFactory? HOT 3
- Create a method in MeshCollisionShape to get a triangle HOT 8
- how to push object? HOT 9
- RigidBody Location/Orientation listener ? HOT 6
- Tick listener HOT 4
- GImpact contact tests always fail HOT 1
- Using "compile" in build.gradle HOT 2
- Question about min/max size when creating physics space HOT 14
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libbulletjme.