Jump to content
  • Advertisement
Sign in to follow this  

Need help with spring constraint

This topic is 1762 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi. I'm trying to implement a spring/elastic constraint into a game and am having trouble getting a certain part to work. Right now, 'Part B' (Pb) is attached to 'Part A' (Pa), and it works fine. The problem is that when Part B is moved, Part A does not move. I've tried applying an equal and opposite force on to Part A but that causes them both to fly off and go crazy at a high speed, so I guessed that was wrong.


Here's the code I have so far: (It's in lua, but is self-explanatory) 

k = 64
b = 0.1
length = 10

dist = (Pa.Position - Pb.Position).Magnitude
unit = (Pa.Position - Pb.Position).Unit
force = (dist - length) * k
resist = Pb.Velocity * b * Pb:GetMass()
vector = (force * unit) - resist

applyForce(Pb, vector)

Don't know if this is the right place to post this, but Idk where else I could. Thanks

Share this post

Link to post
Share on other sites

The code strikes me as strangely asymmetric. The `resist' term should probably depend on the difference of the velocities of Pb and Pa, not just the velocity of Pb. Also, I would either not mention the mass of Pb or I would use something like the sum of the masses of Pb and Pa. And you should definitely apply the opposite force to Pa.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!