Cocos2d-x之Box2D物理引擎

本文介绍了Cocos2d-x中Box2D物理引擎的使用,包括世界、刚体、形状、关节等基本概念,以及如何创建动态、静态刚体和物体工厂。讲解了世界模拟、形状定义,如摩擦、恢复属性,以及碰撞筛选的实现,为游戏开发中的物理效果提供参考。
摘要由CSDN通过智能技术生成

1、概述

我们在游戏中,有时需要模拟真实的物理世界,让游戏世界中的物体都按照物理世界的规律进行运动。而要实现这种功能,就需要用到物理引擎。
在cocos2d-x中集成了2个物理引擎,一个是Chipmunk,一个是Box2D,Box2D的使用人数更多,文档,资料更加完成,所以我们一般选择Box2D。
cocos2d-x 3.0之后的版本对Box2D进行了封装,但是我们学习的时候还是最好了解着更加全面一点。

2、基本概念

Box2D中有几个常见的概念。

世界(world)

世界代表一个遵循物理规律的空间,所有的物体都在世界中运动,世界具有创建销毁刚体,创建销毁关节等功能。

刚体(body)

一块非常坚硬的物质,它上面的任何两点之间的距离都是完全不变的。刚体具体划分为静态刚体,动态刚体和菱柱刚体。

形状(shape)

一块严格依附于物体(body)的2D碰撞几何结构(collision geometry)。形状通过关联附加到刚体上,这样刚体就具备了视觉上的外形。

关节(joint)

它是一种用于把两个或者多个物体固定到一起的约束。Box2D支持的关节类型有:旋转,菱柱,距离等等。关节支持限制(limits)和马达(motors)。

关节限制(joint limit)

一个关节限制限定了一个关节的运动范围。例如人类的胳膊肘只能做某一范围角度的运动。

关节马达(joint motor)

一个关节马达能依照关节的自由度来驱动所连接的物体。例如,你可以使用一个马达来驱动一个肘的旋转。

3、世界

世界代表了一个遵守某些物理定律的空间。

3.1 世界的创建

创建世界需要两个步骤,首先生成重力向量,然后根据重力向量生成世界。

    //重力参数,向量
    b2Vec2 gravity;
    //设置水平方向和垂直方向上的加速度
    gravity.Set(0.0f, -10.0f);
    //创建世界
    world = new b2World(gravity);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值