2014-09-11 2 views
0

J'ai parcouru toute la documentation que je peux trouver pour Farseer, et je ne trouve pas comment utiliser BodyDef/FixtureDef dans mes projets. Ont-ils été renommés en quelque chose d'autre quand ils ont été transférés de Box2D?Est-ce que BodyDef/FixtureDef est disponible dans Farseer Physics?

Ma principale préoccupation est quelque chose de semblable à accomplissait ce qui suit:

FixtureDef fdef; 
fdef.isSensor = true; 

Répondre

1

Bien que Farseer physique a des origines dans Box2D, ce n'est pas un port exact de celui-ci. Il a quelques similitudes, mais fait les choses de sa propre façon (plus familier avec les programmeurs C# je suppose). Il n'utilise pas de classes Def. Je crois que les 2 exemples suivants sont équivalents:

C++

// create a body 
b2BodyDef bodyDef; 
bodyDef.type = b2_dynamicBody;  
bodyDef.position.Set(-10, 20); 
b2Body* body = world->CreateBody(&bodyDef); 

// create a shape 
b2CircleShape circleShape; 
circleShape.m_radius = 0.5f; 

// create a fixture 
b2FixtureDef myFixtureDef; 
myFixtureDef.shape = &circleShape; 
body->CreateFixture(&myFixtureDef); 

C#

// create a body 
var body = world.CreateBody(); 
body.BodyType = BodyType.Dynamic; 
body.Position = new Vector2(-10, 20); 

// create a shape 
var circleShape = new CircleShape(0.5f); 

// create a fixture 
var fixture = body.CreateFixture(circleShape); 

Comme vous pouvez le voir sur le corps, la principale différence est que vous définissez les propriétés après la création sur la instance réelle plutôt que d'une classe def. Farseer Physics utilise également des classes Factory très pratiques. Jetez un oeil à la documentation pour plus d'informations.

https://farseerphysics.codeplex.com/documentation

Questions connexes