文章分类 -  Box2D

用PhysicsEditor快速创建自定义Box2D刚体
摘要:转自:http://www.ladeng6666.com/blog/2012/12/09/create-customer-body-shape-using-physicseditor-step1/PhysicsEditor,相信很多人都已经很熟悉了,通过它的可视化编辑界面,点一点,拉一拉就可以轻松创建任意的多边形刚体模型,并将这个模型数据导出成我们所需的格式,例如AS3类。PhysicsEditor支持Box2D、Cocos2d、Nape等多种2D物理引擎。闲话少说,我们马上开始学习PhysicsEditor。PS:如果你喜欢学习英文资料,可以参考这里。在学习PhysicsEditor之前,先 阅读全文

posted @ 2014-03-23 22:12 shengchang

用马达关节创建Box2D锁链效果
摘要:转自:http://www.ladeng6666.com/blog/2012/11/25/create-box2d-linkage-or-bridge-effect-using-b2joint/今天我们来学习Box2D锁链效果。这个效果并不难,记得我们学过的Box2D 关节——”马达关节” b2RevoluteJoint吗?锁链效果其实就是用多个b2RevolueJoint连接多个刚体,很简单吧!简单在用多个关节连接多个刚体,难也难在这里。我们还是先来看看效果吧。在下面的效果中我创建了两个锁链,一个是小桥,另一个是连接了一个圆形刚体的锁链。鼠标可以点击并拖动下面的刚体。看过效果之后,我想你肯定 阅读全文

posted @ 2014-03-23 17:27 shengchang

用b2WorldManifold获取碰撞点
摘要:转自:http://www.ladeng6666.com/blog/2012/11/24/get-collision-point-using-b2worldmanifold-in-box2d/有时候游戏中发生碰撞时,我们希望在碰撞位置添加一个爆炸效果,这就要知道碰撞点的位置。Box2D中发生碰撞时,都会生成一个b2Contact对象,包含了大量的碰撞信息,其中就包括了我们今天学习的b2WorldManifold获取碰撞点信息。b2Contact中有两个获取Manifold的方法,一个是GetManifold(),获取相对于刚体的碰撞点本地坐标(具体请参考这里);另一个是GetWorldMani 阅读全文

posted @ 2014-03-23 17:15 shengchang

FilterData让Box2D碰撞分类进行
摘要:转自:http://www.ladeng6666.com/blog/2012/11/02/filterdata-to-separate-the-box2d-collision/上一节课,我们学会了用b2Body的isSensor属性制作一个Box2D感应区域。当刚体的isSensor属性为true是,不会参与物理碰撞模拟,实际上,我们可以用Box2D的另一个特性实现相同的效果,它就是今天我们要学的FilterData类。Filter是"过滤"的意思,所以FilterData可以简单的理解成用来过滤碰撞刚体(比如接下来哦我么要实现的矩形只与矩形刚体碰撞,圆形只与圆形刚体碰撞) 阅读全文

posted @ 2014-03-23 17:10 shengchang

用刚体isSensor属性创建感应区域
摘要:转自:http://www.ladeng6666.com/blog/2012/10/28/create-sensor-body-using-issensor/Box2D是一个强大的2D物理引擎,可以帮我们完美实现2D物理碰撞。前面学习了各种刚体和关节对象,以及它们的检测碰撞,充分证明了Box2D是一个强大而完美的2D物理引擎。默认情况下,碰撞发生后,Box2D会按照动量守恒定律,自动模拟物理碰撞的反弹或变向运动。但是有时候,根据碰撞后处理方式的不同,碰撞后的动量守恒运动可能并不是我们想要的。比如,当碰撞后改变刚体重力方向,这时候被碰撞的刚体更像是一个感应区域。如下面的示例,点击舞台空白处,创建 阅读全文

posted @ 2014-03-23 16:56 shengchang

让Box2D刚体无阻尼匀速运动
摘要:转自:http://www.ladeng6666.com/blog/2012/11/11/moving-box2d-body-uniformly/Box2D物理引擎默认情况下,对世界b2World里的刚体都是模拟自由落体运动,并且因为摩擦力的影响,刚体会慢慢的停下来(在物理学上也叫做有阻尼运动)。今天我们来学习一下,让刚体不受摩擦力影响,无阻尼匀速运动下去。首先我们要消除重力,让刚体不做自由落体运动。我们曾在Box2D自定义重力中,学习了如何消除重力。因为本节示例中的所有刚体都不受重力影响,所以直接在创建的b2World对象时,直接设置重力为零向量new b2Vec2(0,0)就可以了。Act 阅读全文

posted @ 2014-03-23 16:37 shengchang

导航