刚体操作

DestroyFixture(b2Fixture)

删除b2Fixture组件 通过b2World.Raycast和b2World.QueryAABB来获取要删除的b2Fixture组件

ApplyForce(force,point)

添加作用力到刚体上 force:要施加的力的大小,单位是N

point:要施加力的点,这是一个全局坐标(世界坐标)

ApplyImpulse(impulse,point)

添加冲量,单位是N*m。

ApplyTorque(Torque)

Torque:扭力大小,为正表示顺时针,为负表示逆时针,单位kg*rad/s

GetLoaclXXX,GetWorldXXX

用来实现本地坐标,向量和全局坐标,向量之间的转换

GetLocalCenter

获取刚体重心的本地坐标

GerWorldCenter

获取刚体重心的全局坐标

GetLoalPoint(worldPoint)

获取全局坐标点worldpoint在刚体坐标系统中的本地坐标

GetWorldPoint(localPoint)

获取本地坐标点localPoint在舞台坐标系统中的全局坐标

GetLocalVector(worldVector)

获取全局向量worldVector在刚体坐标系统中的本地向量

GetWorldVector(localVector)

获取本地向量localVector在舞台坐标系统中的全局向量

GetMass

返回刚体的质量,单位是kg

SetMassData

设置刚体质量

Split(callback)

callback是split的回调函数,参数为b2Fixture,一般对这个Fixture进行操作

GetAABB

AABB是“Axis Aligned Bounding Box”的缩写 返回能包围当前形状的最小矩形 lowerBound:表示b2AABB矩形上的左上角坐标 upperBound:表示b2AABB矩形上的右下角坐标

QueryAABB

查找所有与指定AABB有碰撞风险的b2Fixture对象

QueryShape

查找所有与指定shape发生碰撞的b2Fixture对象

RayCast(callback,poing1,point2)

在Box2D世界中投射一条光线,并查找这条光线上所有fixture对象。 callback:回调函数,参数有fixture,point,normal,fraction fixture:与线段发生碰撞的b2Fixture对象 point:碰撞点坐标位置(全局坐标) normal:垂直于线段与物体交叉边的单位向量 fraction:碰撞点point到起始点point1的距离占线段总长度的比例。

point1:射线起点 point2:射线终点

碰撞处理

认识碰撞

一种是因为形状上发生了接触或重叠所引起的常规碰撞。 另一种是潜在碰撞,指的是当形状的最小包围盒AABB发生接触或重叠时,所引发的碰撞。

b2Contact

实际应用中我们不需要主观创建b2Contact对象。 一个b2Contact对象从前在碰撞发生时被创建,会一直存在,直到碰撞双方最小包围盒FattenAABB不再有重叠,才会被销毁。

isTouching

Box2D中,将碰撞对象是否发生重叠保存在一个名为touching的属性中,调用isTouching函数可以读取这个Boolean类型的属性值。

SetTangentSpeed

它的作用是碰撞发生时,在碰撞面的切线方向,为碰撞刚体添加一个线性速度值speed,实现类似传送带的效果。

b2ContactListener

b2ContactListener是一个碰撞事件处理函数集合类,其中包含PreSolve,BeginContact,EndContact和PostSolve 我们通常需要继承b2ContactListener做一个自己的监听类,并通过World.SetContactListener方法将其设置为默认碰撞侦听对象