刚体代表一个质点,它只有位置,没有大小。在Box2D中把刚体分为三种类型。
1、静态刚体(Static Body)没有质量,没有速度,想要改变它的位置,只能通过代码修改。
2、棱柱刚体(Prismatic Body)没有质量,但是可以有速度,引擎会根据速度计算并更新它的位置。
3、动态刚体(Dynamic Body)有质量,也可以有速度,这是我们最常用的刚体类型了。
在编程时,Box2D要求先定义一个描述类,然后通过这个描述类创建某个对象。所以创建刚体就需要先定义一个刚体的信息,然后通过相关方法创建刚体。当刚体被创建时刚体定义中的信息会被复制,所以在刚体创建完成后刚体定义还可以重复用,但是要记得不需要刚体定义时要释放掉。(在ios平台上可以用自动内存管理机制)
创建刚体需要完成两个步骤,一是生成一个刚体定义,二是根据刚体定义生成刚体,代码如下:
//生成一个刚体定义
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(0,0);
//根据刚体定义生成刚体
b2Body *groundBody = world -> CreateBody (&groundBodyDef);