cocos creator学习14——物理引擎的开启与组件说明

物理引擎

1.开启物理引擎

cocos2d有一个开启物理引擎的全局变量——director.getPhysicsManager.enabled 为true则开启物理引擎

cc.director.getPhysicsManager().enabled = true;

1.1调试模式开启

给指定物理系统需要绘制哪些调试信息

var draw = cc.PhysicsManager.DrawBits;
cc.director.getPhysicsManager().debugDrawFlags = draw.e_shapeBit|draw.e_jointBit;

1.2重力

cc.director.getPhysicsManager().gravity 为物理引擎的全局变量,作为’重力’。实质默认是一个cc.p(0,-320)向量。

2.给节点绑定相关组件

给组件绑定RigidBody 组件(即为刚体组件)和相关物理碰撞器组件,一定是从物理组件中的碰撞组件才有效,否则无效。
组件

2.1刚体类型

刚体分3种类型,静态、不受外力、动态刚体。
type
使用静态刚体与动态刚体即可模拟出物体从空中落下的情况
效果

2.2刚体属性

刚体属性 功能
enabledContactListener 是否开启碰撞事件的监听
bullet 是否为子弹属性,防止高速穿越
allowSleep 是否允许进入休眠状态,一段时间后如果物体没有任何状态改变会进入休眠状态
gravityScale 该物体收重力的缩放
linearDamping 线性阻尼,衰减线性速度
angularDamping 角速度阻尼,衰减角速度
linearVelocity 刚体的线性速度
angularVelocity 刚体的角速度
fixedRotation 是否固定不旋转
awake 是否立刻唤醒此刚体
active 是否激活这个刚体,如果不激活,那么刚体不会参与碰撞

主要要提比较特殊的子弹属性,子弹属性比较特别,当某刚体的速度非常快的时候
这里写图片描述
计算机会出现计算的忽略 的效果如下
效果
子弹会非常快的穿过物体,而不会撞击
为了防止高速穿越,只需要把RigidBody的bullet属性勾选上即可解决
子弹属性

2.3刚体碰撞器属性说明

属性 属性说明
Tag 碰撞器的标记,区别一个节点上多个不同的碰撞器
Density 相状的密度
Sensor 是否为一个碰撞感应器
Friction 摩擦系数
Restitution 弹性系数[0, 1], 0没有弹性, 1完全弹性碰撞
Editing 可以编辑碰撞器的形状

开启物理引擎后,所有的碰撞计算实质都是由碰撞器决定,碰撞器代表着碰撞的物体形状,若节点没有绑定碰撞器组件,一切的碰撞也只能是贴图重叠的效果。

猜你喜欢

转载自blog.csdn.net/agsgh/article/details/79904045