0 votes

These are my project settings:
Default linear and angular damp = 0 and default gravity = 0

I have following in my scene:
1)An Area node with point gravity for simulating planetary/spherical gravity.
2)A RigidBody node placed inside this area, whose velocity I have set perpendicular to gravity, once in the beginning of the scene using set_linear_velocity(Vector3(0,15,0)) in _ready(). I have tried apply_central_impulse() also.

I was expecting that either the rigidbody node will keep revolving around the gravity if it picked up a stable orbit, or will eventually fall down.

Test run: https://gfycat.com/jauntylazychrysalis

But if you see this test run, it keeps increasing it speed and increasing it's orbit radius, which doesn't make sense given that there is no other external force which would increase it's speed nor there is linear damp which would decrease it's speed. Shouldn't it just maintain its speed?

What am I missing in understanding the physics here?

in Engine by (43 points)
edited by

I've seen instances where apply_impulse wouldn't work if done in _ready, did it work for you?

Yes, I was able to use apply_impulse and set_linear_velocity interchangeably in _ready() with same results. I have 3 second timer before it applies the impulse/velocity though.

1 Answer

0 votes

how exactly are you simulating gravity? it seems like the force maybe constant?

by (17 points)

I am using the Area node's gravity option. I figured this must be a bug so I have raised a GitHub issue: https://github.com/godotengine/godot/issues/30575

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.