0
我已經搜遍了所有我能找到的Farseer文檔,並且找不到如何在我的項目中使用BodyDef/FixtureDef。當它們從Box2D移植過來時,它們是否被重命名爲其他東西?Farseer Physics中有BodyDef/FixtureDef嗎?
我主要關注的是完成類似下面的東西:
FixtureDef fdef;
fdef.isSensor = true;
我已經搜遍了所有我能找到的Farseer文檔,並且找不到如何在我的項目中使用BodyDef/FixtureDef。當它們從Box2D移植過來時,它們是否被重命名爲其他東西?Farseer Physics中有BodyDef/FixtureDef嗎?
我主要關注的是完成類似下面的東西:
FixtureDef fdef;
fdef.isSensor = true;
儘管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類。查看文檔以獲取更多信息。