《Box2D物理游戏编程》适合零基础、想继续深入学习Box2D物理游戏开发的读者,可作为游戏开发人员的参考书,也可用作高等院校相关专业的教学用书。
《Box2D物理游戏编程》系统地梳理学习Box2D物理游戏编程的各个知识点,并通过图解、问答、举例等形式深入浅出地讲解初学者觉得晦涩难懂的概念、术语。最后,通过大量的游戏效果模拟,直截了当地介绍相关知识点的实际应用,这些游戏包括《愤怒的小鸟》《叫醒盒子》《超越重力》《星星大盗》《割绳子》等。
《Box2D物理游戏编程》基于Box2D 2.3.0进行讲解,内容包含b2WheelJoint、b2MotorJoint、SetTangentSpeed、Raycast等网络上相对较少的教程,是目前为止市面上最全面、最详细的Box2D教程。
目录
- 第1章 认识Box2D世界
- 1.1 什么是Box2D引擎
- 1.2 创建Box2D世界
- 1.2.1 重力
- 1.2.2 创建世界
- 1.3 开启Box2D模拟
- 1.4 小结
- 第2章 认识刚体
- 2.1 什么是刚体
- 2.2 创建刚体
- 2.3 认识刚体形状
- 2.3.1 圆形
- 2.3.2 矩形
- 2.4 b2DebugDraw调试视图
- 2.5 小结
- 第3章 刚体属性详解
- 3.1 b2BodyDef
- 3.1.1 状态类属性
- 3.1.2 角度、角速度类属性
- 3.1.3 坐标、速度类属性
- 3.1.4 其他属性
- 3.2 b2FixtureDef
- 3.2.1 物质特性类属性
- 3.2.2 碰撞属性
- 3.2.3 形状
- 3.2.4 其他属性
- 3.3 小结
- 第4章 刚体操作
- 4.1 LDEasyBox2D工具包
- 4.2 CreateFixture
- 4.3 CreateFixture2
- 4.4 DestroyFixture
- 4.5 ApplyForce
- 4.6 Applylmpulse
- 4.7 ApplyTorque
- 4.8 GetLocalXXX、GetWorldXXX
- 4.9 GetMCISS
- 4.10 SetMassData
- 4.11 Split
- 4.12 GetAABB
- 4.13 QueryAABB
- 4.14 QueryShape
- 4.15 RayCast
- 4.16 小结
- 第5章 碰撞处理
- 5.1 认识碰撞
- 5.2 b2Contact
- 5.2.1 GetFixtureA()和
- GetFixtureB()
- 5.2.2 GetManiFold()
- 5.2.3 GetWorldManifold()
- 5.2.4 isTouching()
- 5.2.5 SetEnabled()和
- IsEnabled()
- 5.2.6 SetSensor()和IsSensor()
- 5.2.7 SetFriction()
- 5.2.8 SetRestitution()
- 5.2.9 SetTangentSpeed()
- 5.3 b2ContactListener
- 碰撞侦听器
- 5.4 游戏中的碰撞处理
- 5.4.1 万有引力
- 5.4.2 小鸟冲量
- 5.4.3 单边平台
- 5.4.4 碰撞粘贴
- 5.5 小结
- 第6章 关节
- 6.1 认识Box2D关节
- 6.2 b2MouseJoint鼠标关节
- 6.3 b2PrismaticJoint位移关节
- 6.4 b2LineJoint线段关节
- 6.5 b2RevoIuteJo_nf旋转关节
- 6.6 b2DistanceJo_nf距离关节
- 6.7 b2WeldJoint粘贴关节
- 6.8 b2PuIleyJoint滑轮关节
- 6.9 b2FrictionJoint摩擦关节
- 6.10 b2GearJoint齿轮关节
- 6.11 b2WheelJoint中轴关节
- 6.12 b2RopeJoint绳索关节
- 6.13 b2MotorJoint马达关节
- 6.14 综合示例
- 6.15 小结
- 第7章 Box2D工具
- 7.1 PhysicsEditor
- 7.2 RUBE
- 7.3 b2Separator
- 7.4 小结
- 第8章 游戏中的Box2D应用
- 8.1 柔体
- 8.1.1 知识点
- 8.1.2 简单的柔体
- 8.1.3 柔体库LiquidFun
- 8.2 浮力
- 8.2.1 知识点
- 8.2.2 水的浮力
- 8.2.3 水的阻力
- 8.3 刚体切割
- 8.3.1 知识点
- 8.3.2 切割的实现
- 8.4 关节碰撞
- 8.4.1 知识点
- 8.4.2 关节的碰撞与折弯
- 8.4.3 回摆的处理
- 8.4.4 游戏交互
- 8.4.5 完美的绳索
- 8.5 小结
- 附录 向量运算
- A.1 Box2D中的向量
- A.2 AddW
- A.3 SubtractW
- A.4 Normalize
- A.5 NegativeSelf
- A.6 Distance
- A.7 MuI
- A.7.1 MulFV
- A.7.2 MulQV
- A.7.3 MuIMV
- A.7.4 MuIX
- A.8 Cross
- A.8.1 CFossW
- A.8.2 CrossFV
- A.8.3 CrossVF
- A.9 Dot