Box2D

用b2WorldManifold获取碰撞点

有时候游戏中发生碰撞时,我们希望在碰撞位置添加一个爆炸效果,这就要知道碰撞点的位置。Box2D中发生碰撞时,都会生成一个b2Contact对象,包含了大量的碰撞信息,其中就包括了我们今天学习的b2WorldManifold获取...

让Box2D刚体无阻尼匀速运动

Box2D物理引擎默认情况下,对世界b2World里的刚体都是模拟自由落体运动,并且因为摩擦力的影响,刚体会慢慢的停下来(在物理学上也叫做有阻尼运动)。今天我们来学习一下,让刚体不受摩擦力影响,无阻尼匀速运动下...

FilterData让Box2D碰撞分类进行

上一节课,我们学会了用b2Body的isSensor属性制作一个Box2D感应区域。当刚体的isSensor属性为true是,不会参与物理碰撞模拟,实际上,我们可以用Box2D的另一个特性实现相同的效果,它就是今天我们要学的FilterDat...

用刚体isSensor属性创建感应区域

Box2D是一个强大的2D物理引擎,可以帮我们完美实现2D物理碰撞。前面学习了各种刚体和关节对象,以及它们的检测碰撞,充分证明了Box2D是一个强大而完美的2D物理引擎。 默认情况下,碰撞发生后,Box2D会按照动量...

b2DebugDraw到底是什么

我们已经学了很多关于Box2D的知识了,但是没仔细研究过天天都在用的b2DebugDraw类。前些天有网友问到,今天我们就来学习一下它的用法。 众所周知,Box2D是一个2D物理引擎。所谓引擎,就像汽车的马达,我们也叫...

LDEasyBox2D使用说明

首先像关注我博客的兄弟们道歉,将近一个月没有更新教程了,今天我们继续。 看过我教程的同学都知道,我的教程里经常会用到LDEasyBox2D,也有人说,这对新手来说,理解起来有些困难。 其实LDEasyBox2D一点...

Box2D浮力效果

前些天有人问到Box2D如何实现浮力效果。今天我们就来学习一下。 Box2D浮力效果实现起来并不难。无非就是当刚体接触到水面时,对它施加一个向上的浮力。不过这个浮力受到刚体体积的影响,体积越大,收到的浮力...

Box2D镜头跟随效果

在疯狂的小鸟中,由于背景很大,玩家可视区域有限,所以当小鸟弹出后,镜头会随小鸟一起移动,让玩家可以看到完整的场景。这种效果叫做”镜头跟随”或者”卷屏”。今天我们就来学习在Box2D中实现镜头跟随效果。 这...

自定义Box2D刚体碰撞处理函数

在谁动了我的刚体——Box2D刚体碰撞中,我们学会了用b2Contact和b2ContactListener来处理发生碰撞的刚体,但是正如我之前所说的,在b2Contact或b2ContactListener中,我们获取的bodyA和bodyB无法知道哪个是游戏主角...

谁动了我的刚体——Box2D碰撞检测

今天我们来学习用Box2D的b2Contact和b2ContactListener来获取碰撞对象(Box2D中用contact一词来表示碰撞,知道这一点,对后面的理解会有帮助)。 Box2D是一个非常强大的2D物理引擎,可以帮我们实现精确的碰撞检...