物理引擎基础与游戏实体集成
1. 物理引擎基础
1.1 复杂物体的创建
我们可以创建一个结合了两种形状的物体,代码如下:
// Create a body combining two shapes
createComplexBody();
setupDebugDraw();
animate();
运行这段代码,我们会看到新的复杂物体。在这个复杂物体中,两个形状会作为一个整体来运动,这是因为 Box2D 将多个形状视为一个单一的刚体。这种组合形状的能力使我们能够模拟任何想要的物体,比如树和桌子,还能绕过创建凹多边形形状的限制,因为任何凹多边形都可以分解为多个凸多边形。
1.2 用关节连接物体
Box2D 支持多种不同类型的关节,包括滑轮、齿轮、距离、旋转和焊接关节等。有些关节会限制运动,而有些则允许有趣的运动类型,甚至有些关节还提供了可以以指定速度驱动关节的电机。下面我们来看看 Box2D 提供的一种较简单的关节:旋转关节。
旋转关节强制两个物体共享一个共同的锚点,通常称为铰接点,物体可以围绕该点旋转。以下是创建旋转关节的代码:
function createRevoluteJoint(){
//Define the first body
var bodyDef1 = new b2BodyDef;
bodyDef1.type = b2Body.b2_dynamicBody;
bodyDef