最近看了HelloWorld 这个例子,Box2d的基本创建都包括了!把他人的东西自己在记忆一下,每天进步一点点。

Box2D物理引擎运作机制大体可分为四步:

1.创建一个世界,这个世界基于一个b2AABB框,并设立了一个g值和一个是否允许休眠的bool型变量。
2.建立一个静态刚体地表。刚体的详细过程:首先是定义一个形状(可以是复合形状),然后把形状通过AddShape添加进刚体定义,这样刚体就创建好了。所谓刚体就可以说是“物体”。
3.重复创建你需要的刚体就可以了。
4.最后在你循环中加入世界的更新函数就可以了。

世界(b2world):世界就是一个环境,所以物理运算都在此进行。
形状定义(b2ShapeDef):形状定义是什么?说简单点形状定义就是定义你这个对象的样子,它用来 做什么?就是用来确定你的碰撞。
刚体定义(b2BodyDef):刚体定义就是设定刚体的初始具体,最大的功能 就是把 你定义好的形状加到你想到的刚体上。
刚体(b2Body):刚体就是物理引擎里的对象,它可以受力的作用进行当前位置的变化旋转等。

几个类型定义:
   typedef singed char int8;
   typedef singed short int16;
   typedef singed int  int32;
   typedef unsinged char uint8;
   typedef unsinged short uint16;
   typedef unsinged  int    uint32;
   typedef float  float32;
   const float32 b2_pi = 3.14159265359f;
数据类型的定义:
1.b2Vec2
它可以定义坐标位置,定义BOX大小等,b2Vec2是由float32类型的x,y组成,支持负向量,+=,-=,*=操作符。
Void SetSize();设置x,y为0;
Void Set(float32 x,float32 y);设置x,y为指定值;
b2Vec2 Make(float32 x,float32 y) 生成一个指定的b2Vec2
float32 Normalize();标准化向量
bool IsValid()检查是否有效

2.b2AABB
 b2AABB 是世界环境,有两个向量组成,一个为 minVertex  是最小顶点,另一个为 maxVertex是最大顶点,通过这两个顶点来表示最为普通的AABB框。

3.b2ShapDef
b2ShapDef就是形状定义,用函数指针来表示用户数据(uerdata),用向量localPostion 来表示当前位置,用float32的localRotation来表示当前角度,用float32的firction、density、restitution 来表示摩擦力、密度、弹性系数,用uint16的categoryBits和maskBits来表示碰撞位和位标识,用int16的groupIndex来表示组号,这个组号还可以用来过滤还比位标识优先。

4.b2BodyDef
b2BodyDef 是刚体定义,由一个函数指针UseData 来表示用户数据,一组类型为b2ShapeDef*指针数组shapes来表示形状队列。

先写这些!记载以后可以加深印象!!!