cocos2d-x box2d物理引擎深入研究 第二篇之齿轮关节详解(b2GearJoint)

在熟悉了平移关节和旋转关节后,再来讲解齿轮关节就显得特别容易。

 

齿轮关节(b2GearJoint)

 

齿轮关节把两个刚体咬合在一起,来模拟现实世界中的齿轮。就那钟表齿轮为例,一个齿轮转动后就带动另外一个齿轮运动,或作平移运动或作旋转运动。在cocos2d-x的TestCpp中的Box2DTestBed中有个gear的例子。

 

cocos2d-x box2d物理引擎深入研究 第二篇之齿轮关节详解(b2GearJoint)_第1张图片

上图中,左边的例子是三个动态刚体。最小的圆这个刚体和地面刚体用一个旋转关节进行固定.稍大的圆刚体和地面也是用旋转关节联系起来。长方形刚体和地面刚体用平移关节关系起来。然后又有两个齿轮关节。第一个齿轮关节把两个圆联系起来。第二个齿轮关节把大圆和长方形联系起来。所以左图上设计到四个刚体和五个关节。代码看例子代码在gear.h文件中。非常简单。这样当上下移动长方形刚体,则齿轮关节会带动大圆刚体,大圆刚体又带动小圆刚体。

 

右图中小圆是个静态刚体,所以在其上的所有物理行为都是无效的。然后创建了一个大圆的刚体。然后又创建了一个齿轮关节。

 

需要注意的是并不是两个刚体要相互接触了齿轮刚体才会有效果(一个带动另外一个)。

 

 

你可能感兴趣的:(cocos2d-x box2d物理引擎深入研究 第二篇之齿轮关节详解(b2GearJoint))