第1章 认识Box2D世界 2
1.1 什么是Box2D引擎 2
1.2 创建Box2D世界 2
1.2.1 重力 3
1.2.2 创建世界 4
1.3 开启Box2D模拟 5
1.4 小结 9
第2章 认识刚体 10
2.1 什么是刚体 10
2.2 创建刚体 11
2.3 认识刚体形状 18
2.3.1 圆形 18
2.3.2 矩形 18
2.4 b2DebugDraw调试视图 21
2.5 小结 26
第3章 刚体属性详解 27
3.1 b2BodyDef 27
3.1.1 状态类属性 29
3.1.2 角度、角速度类属性 31
3.1.3 坐标、速度类属性 35
3.1.4 其他属性 37
3.2 b2FixtureDef 41
3.2.1 物质特性类属性 42
3.2.2 碰撞属性 44
3.2.3 形状 49
3.2.4 其他属性 59
3.3 小结 59
第4章 刚体操作 62
4.1 LDEasyBox2D工具包 62
4.2 CreateFixture 65
4.3 CreateFixture2 69
4.4 DestroyFixture 70
4.5 ApplyForce 73
4.6 Applylmpulse 78
4.7 ApplyTorque 81
4.8 GetLocalXXX、GetWorldXXX 84
4.9 GetMass 87
4.10 SetMassData 89
4.11 Split 93
4.12 GetAABB 96
4.13 QueryAABB 101
4.14 QueryShape 107
4.15 RayCast 114
4.16 小结 123
第5章 碰撞处理 124
5.1 认识碰撞 124
5.2 b2Contact 127
5.2.1 GetFixtureA()和GetFixtureB() 127
5.2.2 GetManiFold() 129
5.2.3 GetWorldManifold() 131
5.2.4 isTouching() 132
5.2.5 SetEnabled()和IsEnabled() 132
5.2.6 SetSensor()和IsSensor() 134
5.2.7 SetFriction() 134
5.2.8 SetRestitution() 135
5.2.9 SetTangentSpeed() 136
5.3 b2ContactListener碰撞侦听器 137
5.4 游戏中的碰撞处理 141
5.4.1 万有引力 141
5.4.2 小鸟冲量 146
5.4.3 单边平台 151
5.4.4 碰撞粘贴 162
5.5 小结 172
第6章 关节 174
6.1 认识Box2D关节 174
6.2 b2MouseJoint鼠标关节 178
6.3 b2PrismaticJoint位移关节 185
6.4 b2LineJoint线段关节 191
6.5 b2RevoluteJoint旋转关节 192
6.6 b2DistanceJoint距离关节 198
6.7 b2WeldJoint粘贴关节 201
6.8 b2PulleyJoint滑轮关节 204
6.9 b2FrictionJoint摩擦关节 208
6.10 b2GearJoint齿轮关节 211
6.11 b2WheelJoint中轴关节 215
6.12 b2RopeJoint绳索关节 221
6.13 b2MotorJoint马达关节 226
6.14 综合示例 230
6.15 小结 232
第7章 Box2D工具 233
7.1 PhysicsEditor 233
7.2 RUBE 245
7.3 b2Separator 256
7.4 小结 260
第8章 游戏中的Box2D应用 261
8.1 柔体 261
8.1.1 知识点 261
8.1.2 简单的柔体 261
8.1.3 柔体库LiquidFun 265
8.2 浮力 267
8.2.1 知识点 267
8.2.2 水的浮力 268
8.2.3 水的阻力 275
8.3 刚体切割 279
8.3.1 知识点 280
8.3.2 切割的实现 280
8.4 关节碰撞 288
8.4.1 知识点 289
8.4.2 关节的碰撞与折弯 289
8.4.3 回摆的处理 295
8.4.4 游戏交互 306
8.4.5 完美的绳索 311
8.5 小结 312
附录 向量运算 313
A.1 Box2D中的向量 313
A.2 AddW 313
A.3 SubtractW 314
A.4 Normalize 314
A.5 NegativeSelf 314
A.6 Distance 315
A.7 Mul 315
A.7.1 MulFV 315
A.7.2 MulQV 316
A.7.3 MulMV 316
A.7.4 MulX 317
A.8 Cross 318
A.8.1 CrossW 318
A.8.2 CrossFV 319
A.8.3 CrossVF 319
A.9 Dot 320