6.1 关于
回想一下之前所描述的形状,在不了解物体的情况下也可以在物理模拟中独立使用。因此Box2D提供了b2Fixture类来把形状附加到物体上。定制器(Fixture)包括如下:
- 单一形状(a single shape)
- broad-phase代理(broad-phase proxies)
- 密度,摩擦以及恢复(density,friction and restitution)
- 碰撞过滤标记(collision filtering flags)
- 返回父物体指针(back pointer to the parent body,译者注:父物体是指具体附加到的物体)
- 用户数据(user data)
- 传感器标记(sensor flag)
下面分段进行描述。
6.2 创建定制器(Fixture Creation)
各种定制器是通过初始化一个定制器定义来进行创建的,之后将其传递给父物体。
1
2
3
4
|
b2FixtureDef fixtureDef;
fixtureDef.shape = &myShape;
fixtureDef.density = 1.0f;
b2Fixture* myFixture = myBody->CreateFixture(&fixtureDef);
|
这里创建了一个定制器并将其附加到物体上。当物体销毁的时候与其关联的定制器也会随之被销毁,所以并不需要对定制器的指针进行存储。你可以在单一物体上创建多个定制器。
你可以通过父物体对定制器进行销毁,这就像模拟分裂对象一样。否则的话就不要去管定制器,让物体自身当中的销毁方法来销毁自身的定制器。