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可以编辑碰撞器的形状

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

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值