cocos creator学习14——物理引擎的开启与组件说明
程序员文章站
2022-05-27 16:11:36
...
物理引擎
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种类型,静态、不受外力、动态刚体。
使用静态刚体与动态刚体即可模拟出物体从空中落下的情况
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 | 可以编辑碰撞器的形状 |
开启物理引擎后,所有的碰撞计算实质都是由碰撞器决定,碰撞器代表着碰撞的物体形状,若节点没有绑定碰撞器组件,一切的碰撞也只能是贴图重叠的效果。
上一篇: Go版GTK:常用控件—标签