• Advertisement
Sign in to follow this  

Need help with spring constraint

This topic is 1489 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
Advertisement

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