Where's the FixedAngleJoint gone in 3.5?

Topics: Developer Forum, User Forum
Nov 12, 2013 at 8:03 PM
Hi there!

I'm trying to follow this awesome tutorial for Farseer 3.3.1:
http://roy-t.nl/index.php/2013/01/02/farseer-physics-3-3-1-and-xna-platformer-character/

Now I'm really stuck because in 3.5, the FixedAngleJoint is gone...
First I thougth I can handle it wit the FixedRotation-Property, but if I set it to true, nothing moves at all.

Unfortunately I can't find a changelog either, so I have no idea how to create such a platform-character.

So what's the alternative to this Joint, or to the way to achive this?

Thank you very much!

Cheers,
Richard
Developer
Nov 12, 2013 at 9:29 PM
The fixed joints are gone, since they showed some problematic behavior (as far as I know) and to be honest they didn't provide that much added value anyway. They were just a convenience and are easily replaced by some static dummy body (without any fixtures attached), which you can use as the second body for all your fixed joints. I usually just create one at the origin of Farseers coordinate system and call it worldAnchor. Since you can pin joints to any point relative to a bodies origin there is merely a difference to the old fixed joints.

On another note though: If setting the FixedRotation property on your bodies causes everything to freeze, something else must be severely broken with your setup. This property just effects the rotation of bodies and has nothing to do with their translation at all.
Nov 12, 2013 at 10:28 PM
Thanks for your fast answer, it's really appreciated!

Now with freezed, I ment only the "Character", not the whole world.
I tried to do your Anchor-Thing, but I ended up with the same result: I can't move the bodies with motor-joint...

Here's what I did:
I have the exact same setting of "Angular-Body" (torso) and "Circular-Body" as in the Tutorial.

Also, my CreateRevoluteJoint looks the same:
Axis= JointFactory.CreateRevoluteJoint(World, Torso, Wheel, Vector2.Zero);

Axis.CollideConnected = false;
Axis.MotorEnabled = true;
Axis.MotorSpeed = MathHelper.TwoPi * MovingSpeed;
Axis.MotorImpulse = 3;
Axis.MaxMotorTorque = 10;
The World-Anchor is also very simple:
WorldAnchor = BodyFactory.CreateBody(World);
WorldAnchor.Position = new Vector2(0, 10);
WorldAnchor.BodyType = BodyType.Static;

JointFactory.CreateAngleJoint(World, Torso, WorldAnchor);
So with all I've read, this should be all to get a motorized, moving character?
What's my mistake?

Thanks again for your help!