Ideally I would like to use a rope joint in Box2D that allows me to change the length after construction. The standard Box2D
RopeJoint doesn't offer that functionality.
I've considered a
PulleyJoint, connecting the other end of the "pulley" to an invisible kinematic body that I can control to change the length, but
PulleyJoint is more like a rod than a rope: it constrains maximum length, but unlike
RopeJoint it constrains the minimum as well.
RopeJoint every frame using a new length is rather inefficient, and I'm not even sure it would work properly in the simulation.
I could create a "chain" of bodies connected by
RotationJoints but that is also less efficient, and less robust. I also wouldn't be able to change the length arbitrarily, but only by adding and removing a whole number of links, and it's not obvious how I would connect the remainder without violating existing joints.
This sounds like something that should be straightforward to do. Am I overlooking something?
Update: I don't care whether the rope is "deformable", i.e. whether it actually behaves like a rope, or whether it collides with other geometry. Just a straight rope will do. I can do graphical gimmicks while rendering; they don't need to exist inside the physics engine. I just want something a
RopeJoint whose length I can change at will.