[SOLVED] Cannot increase jump or fall speed

Headers? Why would a Java library contain headers? You mean classes, I think.

Apparently the jme3-jbullet library packaged with the 3.3.0-beta1 SDK is defective. Good to know.

1 Like

Classes, of course. :innocent:

For what it’s worth, the one in bintray is fine. 3.2.4 stable and 3.3.0 beta1 have the same class names in them… except 3.3.0 beta1 has some additional animation classes.

I made the wiki more clear on the adding of physics.

https://wiki.jmonkeyengine.org/jme3/jme3_source_structure.html#physics

2 Likes

By the way, jme3-jbullet is on BinTray, but not JCenter. Is this just an oversight, or is there a good reason?

Thank you, @mitm.

By the way, it’s okay to combine jme3-bullet-native and jme3-bullet-native-android in a single application. Those libraries don’t overlap the way jme3-bullet and jme3-jbullet do.

I have no idea why this happened.

1 Like

I clicked the “Add to JCenter” button on the package webpage, and got pink error popup saying that the version-control URL was invalid. I edited the URL and resubmitted the request. If all goes well, jme3-jbullet should be on JCenter within 24 hours.

The missing JCenter artifacts have been added, but of course that doesn’t resolve the OP’s issue.

I’ll experiment with HelloCollision and report back with my findings.

  1. The source code at https://wiki.jmonkeyengine.org/jme3/beginner/hello_collision.html is incompatible with jme3-jbullet. In jme3-jbullet, PhysicsControl does not provide a setGravity(Vector3f) method (only a setGravity(float) one). If you’re able to invoke PhysicsControl.setGravity(Vector3f), then you’re not using jme3-jbullet.

  2. In HelloCollision, setJumpSpeed() has no visible effect because its value is overridden when jump(new Vector3f(0,20f,0) is invoked in the onAction() method. If I replace jump(new Vector3f(0,20f,0) with jump(new Vector3f(0f,60f,0f)), then the player jumps faster and higher, as expected.

  3. setFallSpeed() sets the maximum fall speed, what’s sometimes called the terminal velocity. In the town setting, the easiest way to fall faster than 100 wu/second is to supply values larger than 100 to both setFallSpeed() and jump(). For instance, with setFallSpeed(300f) and jump(new Vector3f(0,200f,0)), the player reaches a speed of 200 wu/second just before landing.

1 Like

So in jBullet these things are taken care of for you setting the float and thats why jump is jump(); vs bullet you tweak it yourself and thats why you set vector3f.

Thanks for clarifying cause I was terrible at physics and was wondering why there was a difference.

I haven’t used Mini so is it the same as bullet?

1 Like

Minie is based on jme3-bullet, so it tends to be more similar to jme3-bullet than jme3-jbullet.

Many years ago, characters worked similarly in jme3-bullet and jme3-jbullet. But Bullet evolved and JBullet (or at least our fork of it) did not.

Ok thanks, I will update the tutorial to specify its using bullet and include info on how to change settings.

2 Likes

@sgold
Wow, thanks for tracking this down…
@mitm
Thanks for updating the examples.

At the moment I’ll use 3.2.4 with jbullet.

1 Like