Character Movement using several bodies/geoms/joints.

Topics: Developer Forum, User Forum
Oct 25, 2009 at 1:08 PM

Hello.

Firstly, thank you for an awesome engine. I've been using it for a while, so far without delving into joints and springs. I've just been working on setting up menus and the like, while my project partner has been making the map editor for our game.

The map editor is pretty much complete, and I've started trying to write a player class.

Basically we would like the player to be a physics object, having a body/geom pair for the head, torso, elbows, hands, knees and feet. I'd like to connect all of these and basically try to simulate character movement.

The 'animated ragdoll' (while being an oxymoron and completely defying the point of a ragdoll) will only be drawn with lines, since it's a stick figure, so detail isn't massively important.

Basically I just want to stop the legs swinging up and knocking the players head off, and 'impossible' sort of movement, at least until the player is dead.

 

I have tried using an ellipse body/geom for the torso and circle body/geoms for the other parts.

Then to start delving into joints, I tried creating an AngleLimitJoint between the torso and head.

Just for joints testing purposes, all the parts are set to ignore gravity. All that happened was my torso mysteriously rotated to the right, while the head rotated to the left.

From what I read in the manual, an AngleJoint would be good for this, but you cannot limit the angle. Is it possible to use both?

 

Any tips / advice would be greatly appreciated. Thanks.

Oct 25, 2009 at 1:10 PM

Also, if you know the best types of joints/springs/whatever to use to link all the parts together, I'd love to know. Thanks.

 

Oct 31, 2009 at 8:28 AM

I am rather interested in this as well, can somebody please enlighten us?

Nov 10, 2009 at 7:58 AM

I have seen a couple of other posts of similar ragdoll setups, so if you do a search of the forums you'll probably be able to figure out how they solved some of these problems.