cocos2dx物理引擎和碰撞检测(四)形状Shapes

前面让大家了解了物理世界,下面将为大家介绍物理世界中的物体。

形状Shape描述了可相互碰撞的几何对象的外形,它通常会是一个几何图形,这与包围盒的概念非常相似。在引擎当中,形状可以作为一个单独的对象,就算不进行物理模拟,也可独立使用,开发者可以在形状Shape上执行一些函数操作。

类b2Shape是形状的基类,Box2D引擎中各种形状类都是继承自这个基类。此基类定义了几个常用函数:

(1)判断一个点和形状是否有重叠

(2)在形状上执行光线投射(ray cast)

(3)计算形状的AABB

(4)计算形状的质量

另外,每个形状都将会是一个几何图形。所以它有2个成员变量:类型(type)和半径(radius)。引擎当中存在2中类型圆形和多边形。

圆形(Circle Shapes)

圆形形状(b2CircleShape)是一个由位置和半径表示的几何图形。圆形都是实心的,主要参数是半径,圆形的位置就是本体的圆心,质心也是这里。下段代码就是创建一个圆形形状,并设置位置和半径。

//创建圆形形状的对象

b2CircleShape circle;

//设置位置

circle.m_p.Set(1.0f,2.0f,3.0f)

//设置半径

circle.m_radius =0.5f;


 

多边形(b2PloygonShape)

在游戏当中,使用最多还是多边形。毕竟游戏中的圆形元素并不多。在Box2D当中一个多边形形状是通过顶点来描述的,所使用的额顶点必须是逆时针排列,逆时针相对于右手坐标系统来说。看代码:

顶点定义多边形


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值