【Cocos入门】物理系统

在这里插入图片描述

物理引擎默认是关闭状态以节省资源开销。开启方法和之前的普通碰撞类似:cc.director.getPhysicsManager().enabled = true但有一个区别,物理引擎的开启必须放在onLoad函数内运行,否则不生效。
**在这里插入图片描述**

开启物理引擎后,游戏运行,会发现添加了刚体的节点会受到重力影响向下自由落体。当然刚才看到刚体组件还有属性面板,这些属性就是对刚体进行物理干预的属性:

  • Enabled Contact Listener–开启物理碰撞检测,这和物理碰撞有关
  • Bullet–防止高速移动的物体穿过墙面或地面等刚体
    Type–刚体类型:static静态刚体、kinematic不受外力影响、Dynamic动态刚体、Animated通过设置线速度
    和角速度驱动的刚体
  • Allow Sleep–允许刚体静止不动时进入睡眠状态,降低CPU占用率
  • Gravity Scale–重力倍数,1为1倍重力
  • Linear Damping–线性速度衰减系数、用于衰减刚体的线性速度,衰减系数可以大于1,当衰减系数比较大
    时,衰减的效果会变得比较敏感
  • Angular Damping–角速度衰减系数
  • Linear Velocity–线性初速度
  • Angular Velocity–角初速度
  • Fixed Rotation–禁止物体旋转
  • Awake On Load–是否在初始化时唤醒此刚体

除了直接在属性面板上设置一些刚体的物理量外,还可以通过代码的方式设置更多的物理量:

  • applyForce(force: cc.Vec2, point: cc.Vec2,wake: boolean)给刚体施加一个力,第一个参数是力在x、y轴上的大小分量,第二个参数是里的作用点,第三个参数是是否唤醒刚体。如果施加的力作用点不在质心上,还会对刚体产生旋转扭矩。
  • applyForceToCenter(force: cc.Vec2,wake: boolean)施加一个力到刚体的质心上
  • appylTorque(torque: number, wake: boolean)施加一个扭力
  • applyLinearlmpulse(impulse: cc.Vec2, point: cc.Vec2, wake: boolean)施加冲量
  • appplyAngularlmpulse(impulse: number wake: boolean)施加角速度冲量

猜你喜欢

转载自blog.csdn.net/weixin_45961836/article/details/136093538