2014-09-11 53 views
0

我已經搜遍了所有我能找到的Farseer文檔,並且找不到如何在我的項目中使用BodyDef/FixtureDef。當它們從Box2D移植過來時,它們是否被重命名爲其他東西?Farseer Physics中有BodyDef/FixtureDef嗎?

我主要關注的是完成類似下面的東西:

FixtureDef fdef; 
fdef.isSensor = true; 

回答

1

儘管Farseer物理有Box2D的起源,這不是它的一個精確端口。它有一些相似之處,但它以自己的方式做事(我猜想對C#程序員更熟悉)。它不使用Def類。我相信下面的兩個例子是等價的:

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); 

你可以從身體看,主要的區別在於,你在創建後設置的屬性實際的實例而不是def類。

Farseer Physics還利用了便利的Factory類。查看文檔以獲取更多信息。

https://farseerphysics.codeplex.com/documentation