首页 > 代码库 > Cocos2dx之Box2D详解 设置物体回复力
Cocos2dx之Box2D详解 设置物体回复力
Cocos2dx之Box2D详解 设置物体回复力
DionysosLai(906391500@qq.com) 2014/7/29
在box2d中,物体有三大属性,分别是:
1. Density,单位体积的质量(即密度), 意义就是一个对象的密度越大,对象就拥有更多的质量,本身就会越难以移动。
2. Friction,摩擦力,范围在0-1.0。 0意味着没有摩擦,1代表最大摩擦,几乎移不动的摩擦。
3. Restitution,回复力,范围在0到1.0。0意味着对象碰撞之后不会反弹,1意味着是完全弹性碰撞,会以同样的速度反弹。
密度和摩擦力比较容易理解,因为本身这两个属性不会跟其他物体有太多关联,而回复力则关系到物体之间的相互联系了,这是由于力的作用是相互的。同时因为力的作用是相互原理,作用力即等于反作用力。另一方面,根据测试结果可以知道,两个物体相碰,如果A物体的回复力为a,B物体的回复力为b。若二者的回复力不一样,则作用在二者身上的回复力为max(a, b),即使双方中有一方的回复力为0,这个结论依然成立。
根据上文,我们就可以设置一个弹性钢球碰到左右面墙面的回弹力不一样(蛋疼的设计,就是因为策划要求,我才发现有上文的结论),只要将钢球的回复力设置为0,左右墙的回复力设置不一样即可。同样,根据这个设计,我们可以设计一种吸附墙,将钢球吸附在墙上(这里可能需要一个传感器设置,就是在墙的范围内,将重力消除掉)。
哈哈,今天就是这样。好久没写博客,真是:~)。最近在做绘本游戏,有一腔的话要说啊。对于游戏,设计真的非常重要啊!!!