码迷,mamicode.com
首页 > 其他好文 > 详细

瘸腿蛤蟆笔记28-cocos2d-x-3.2 Box2d物理引擎collision模块介绍

时间:2014-08-16 09:48:50      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:style   color   使用   os   io   strong   ar   管理   

上篇回顾

本篇名言:绝不测量山的高度除非你已到达顶峰,那时你就会知道山有多低。 [哈马绍]

上篇中,我们学习了Box2d物理引擎的三大模块之一的common模块,该模块主要包含设置,内存管理和向量数学。

这次蛤蟆接着学习collison模块。

理论介绍

         这个collision模块包括了shapes和函数。同时包括一个动态树和broad-phase(蛤蟆不知道怎么解释这个)用于加速碰撞系统。这个模块设计的时候是在动态系统之外使用的。

       Shape

         这里的shapes描述了碰撞几何,可以独立于物理仿真使用的。

         每个shape都有一个类型成员和半径。半径甚至适用于多边形。

         我们需要记住如下2点即可:

1. 当一个形状不附属于body,它的顶点被表达在世界空间。

2. 当形状附着在body,它的顶点被表达的局部坐标。

         圆形,有一个位置坐标和直径。

         多边形至少需要3个以上的顶点。(这些顶点是逆时针方向保存的,多边形最多8个值,是有b2_maxPolygonVetices变量确定的。)

         定义一个多边形我们可以这样如下:

b2Vec2 vertices[3];

vertices[0].Set(0.0f, 0.0f);

vertices[1].Set(1.0f, 0.0f);

vertices[2].Set(0.0f, 1.0f);

int32 count = 3;

b2PolygonShape polygon;

polygon.Set(vertices, count);

         边缘形状其实就是线状。它能与圆形,多边形发生碰撞,但是不能和边缘形状发生碰撞。

         链形状提供了一个搞笑的链接边缘的方法,以构建一个静态的游戏世界。链形状记得不要相互交叉哦。

 

函数方面

         函数方面主要是一些碰撞检测,如两个形状之间的距离,是否重叠等。这块虽然是这个collison模块的核心,但是蛤蟆觉得以后续咱们具体例子介绍为宜。

        

动态树

         动态树类用于高效管理大量的形状。

Broad-phase

         碰撞过程在物理步骤上可以分为:narrow-phase和Broad-phase。

         目前阶段,咱们记住如果使用narrow-phase的话,碰撞需要进行大量的计算,而使用Broad-phase可以大大减少narrow-phase 调用。我们不需要和Broad-phase直接打交道,了解一下即可。

        

总结

         本次是蛤蟆对开源的Box2d物理引擎中的其中一个模块-collision的学习和记录,内容比较少,希望不要扔砖。ok,接下去蛤蟆会继续学习Dynamics模块。

瘸腿蛤蟆笔记28-cocos2d-x-3.2 Box2d物理引擎collision模块介绍,布布扣,bubuko.com

瘸腿蛤蟆笔记28-cocos2d-x-3.2 Box2d物理引擎collision模块介绍

标签:style   color   使用   os   io   strong   ar   管理   

原文地址:http://blog.csdn.net/notbaron/article/details/38597313

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!