21.物理引擎基本配置
学会使用搜索引擎是基本的数字素养 #生活知识# #生活理念# #数字素养理念#
1. 开启物理引擎
编写脚本来开启物理引擎;
将这个脚本挂载到场景的根节点;
编写调试接口决定是否打开物理引擎调试;
cc.director.getPhysicsManager().enabled = true; // 打开物理引擎
cc.director.getPhysicsManager().debugDrawFlags 调试标志;
var Bits = cc.PhysicsManager.DrawBits;
cc.director.getPhysicsManager().debugDrawFlags = Bits.e_jointBit | Bits.e_shapeBit;
cc.PhysicsManager:
enable: 开启 debugDrawFlags: 调试标志, gravity: 重力加速度,二维向量
2. 重力加速度
物理引擎会有一个重力加速度,来模拟物理环境,你可以可以把重力加速度改成0,不受重力影响;
修改重力加速度:
cc.director.getPhysicsManager().gravity = cc.v2(0, -320);
3. 物理刚体
刚体:形状不会改变
刚体分为静态,动态刚体, 不受力的刚体(Kinematic,不受作用力的影响);
刚体是受到物理作用的物体,由刚体带着节点移动;
刚体组件cc.RigidBoy:
enabledContactListener: 是否开启碰撞事件的监听;
bullet: 是否为子弹属性,防止高速穿越;
allowSleep: 是否允许进入休眠状态,一段时间后如果物体没有任何状态改变会进入休眠状态;
gravityScale: 该物体收重力的缩放;
linearDamping: 线性阻尼,衰减线性速度;
angularDamping: 角速度阻尼,衰减角速度;
linearVelocity: 刚体的线性速度;
angularVelocity: 刚体的角速度;
fixedRotation: 是否固定不旋转;
awake: 是否立刻唤醒此刚体;
active: 是否激活这个刚体,如果不激活,那么刚体不会参与碰撞;
4. 刚体碰撞器
光有刚体还不够,还要为每个刚体添加一个物理性状;
物理形状的类型:
矩形物理碰撞器;
圆形物理碰撞器;
多边形物理碰撞器;
链条碰撞器: PhysicsChainCollider;
碰撞器的物理参数:
Tag: 碰撞器的标记,区别一个节点上多个不同的碰撞器;
Density: 相状的密度;
Sensor: 是否为一个碰撞感应器;
Friction: 摩擦系数;
Restitution: 弹性系数[0, 1], 0没有弹性, 1完全弹性碰撞;
Editing: 可以编辑碰撞器的形状;
一定要加物理碰撞器,而不是碰撞系统的碰撞器,非常容易出错误
代码示例 enbale_phy.js 挂在canvans
cc.Class({
extends: cc.Component,
properties: {
is_debug: false,
gravity: cc.v2(0, -320),
},
onLoad () {
cc.director.getPhysicsManager().enabled = true;
if(this.is_debug) {
var Bits = cc.PhysicsManager.DrawBits;
cc.director.getPhysicsManager().debugDrawFlags = Bits.e_jointBit | Bits.e_shapeBit;
}else {
cc.director.getPhysicsManager().debugDrawFlags = 0;
}
cc.director.getPhysicsManager().gravity = this.gravity;
},
start () {
},
});
工程截图:
网址:21.物理引擎基本配置 https://www.yuejiaxmz.com/news/view/122869
相关内容
引擎保养小贴士!宝马汽车引擎盖怎么打开?引擎盖打开方法及日常保养小技巧
ThingsKit物联网平台产品规则引擎操作之场景联动
如何进行配置配网引导
基于java+springboot的工业互联网设备管理系统
置物架品牌介绍 置物架价格
信息素养:效率提升与终身学习的新引擎
谷歌相机AGC9.2版:魅族20/21系列成像优化配置指南
ssm+vue基本微信小程序的校园生活助手系统
配置基础信息配置设备面板