cocos2d-x box2d物理引擎深入研究 第二篇之齿轮关节详解(b2GearJoint)
2013-06-13 21:35
375 查看
在熟悉了平移关节和旋转关节后,再来讲解齿轮关节就显得特别容易。
齿轮关节(b2GearJoint)
齿轮关节把两个刚体咬合在一起,来模拟现实世界中的齿轮。就那钟表齿轮为例,一个齿轮转动后就带动另外一个齿轮运动,或作平移运动或作旋转运动。在cocos2d-x的TestCpp中的Box2DTestBed中有个gear的例子。
上图中,左边的例子是三个动态刚体。最小的圆这个刚体和地面刚体用一个旋转关节进行固定.稍大的圆刚体和地面也是用旋转关节联系起来。长方形刚体和地面刚体用平移关节关系起来。然后又有两个齿轮关节。第一个齿轮关节把两个圆联系起来。第二个齿轮关节把大圆和长方形联系起来。所以左图上设计到四个刚体和五个关节。代码看例子代码在gear.h文件中。非常简单。这样当上下移动长方形刚体,则齿轮关节会带动大圆刚体,大圆刚体又带动小圆刚体。
右图中小圆是个静态刚体,所以在其上的所有物理行为都是无效的。然后创建了一个大圆的刚体。然后又创建了一个齿轮关节。
需要注意的是并不是两个刚体要相互接触了齿轮刚体才会有效果(一个带动另外一个)。
齿轮关节(b2GearJoint)
齿轮关节把两个刚体咬合在一起,来模拟现实世界中的齿轮。就那钟表齿轮为例,一个齿轮转动后就带动另外一个齿轮运动,或作平移运动或作旋转运动。在cocos2d-x的TestCpp中的Box2DTestBed中有个gear的例子。
上图中,左边的例子是三个动态刚体。最小的圆这个刚体和地面刚体用一个旋转关节进行固定.稍大的圆刚体和地面也是用旋转关节联系起来。长方形刚体和地面刚体用平移关节关系起来。然后又有两个齿轮关节。第一个齿轮关节把两个圆联系起来。第二个齿轮关节把大圆和长方形联系起来。所以左图上设计到四个刚体和五个关节。代码看例子代码在gear.h文件中。非常简单。这样当上下移动长方形刚体,则齿轮关节会带动大圆刚体,大圆刚体又带动小圆刚体。
右图中小圆是个静态刚体,所以在其上的所有物理行为都是无效的。然后创建了一个大圆的刚体。然后又创建了一个齿轮关节。
需要注意的是并不是两个刚体要相互接触了齿轮刚体才会有效果(一个带动另外一个)。
相关文章推荐
- cocos2d-x box2d物理引擎深入研究 第一篇之旋转关节详解(b2RevoluteJoint)
- cocos2d-x box2d物理引擎深入研究 第一篇之鼠标关节详解(b2MouseJoint)
- cocos2d-x box2d物理引擎深入研究 第一篇之平移关节详解(b2PrismaticJoint)
- cocos2d-x box2d物理引擎深入研究 第一篇续
- Cocos2d-x Box2D物理引擎编译设置
- Cocos2d-x Box2D物理引擎编译设置
- cocos2d-x Box2d物理引擎基础操作
- cocos2d-x3.0 新的物理引擎之详解setCategoryBitmask()、setContactTestBitmask()、setCollisionBitmask()
- LibGdx--GearJoint齿轮关节
- cocos2d-x3.0 新的物理引擎之详解setCategoryBitmask()、setContactTestBitmask()、setCollisionBitmask()
- cocos2d-x 3.0开发笔记---物理引擎封装 Physics深入学习
- 图片屏幕LibGdx--GearJoint齿轮关节
- cocos2d-x3.0开发笔记 物理引擎封装Physics深入学习
- 实例介绍Cocos2d-x物理引擎:使用关节
- cocos2d-x 3.0开发笔记---物理引擎封装 Physics深入学习
- 实例介绍Cocos2d-x物理引擎:使用关节
- Unity物理引擎研究之关节
- netty源码深入研究(从客户端入手)第二篇(详解读消息的管道处理流程)
- 实例介绍Cocos2d-x物理引擎:HelloPhysicsWorld
- cocos2d-x初探学习笔记(19)--物理引擎box2d(1)