cocoscreator重力感应事件回调用

cocoscreator重力感应事件回调用,第1张

就像touch事件一样,我们在init里面开启重力感应事件,然后重写函数就可以了。

1、首先在init里面开启重力事件,this->setAccelerometerEnabled(true);//开启重力感应。

2、重写函数。就可以完成cocoscreator重力感应事件回调。

引言

在Cocos Creator游戏开发的过程中,经常需要做物体的碰撞、反d等物理判断和检测处理。

一、开启物理引擎

1: 编写脚本来开启物理引擎

2: 将这个脚本挂载到场景的根节点

3: 编写调试接口决定是否打开物理引擎调试

4: cc.director.getPhysicsManager().enabled = true// 打开物理引擎

1.  `cc.director.getPhysicsManager().debugDrawFlags 调试标志`

2.  `varBits= cc.PhysicsManager.DrawBits`

3.  `cc.director.getPhysicsManager().debugDrawFlags = Bits.e_jointBit | Bits.e_shapeBit`

5: cc.PhysicsManager:

1.  `enable: 开启  debugDrawFlags: 调试标志,  gravity: 重力加速度,二维向量`

1.书写组件类

1.  `const {ccclass, property} = cc._decorator`

2.  `@ccclass`

3.  `export default class EnablePhy extends cc.Component {`

4.  `    @property({tooltip:"是否开启物理引擎"})`

5.  `    enablePhy : boolean = false`

6.  `    @property({tooltip:"是否调试模式"})`

7.  `    isDebug : boolean = false`

8.  `    @property({tooltip:"重力加速度"})`

9.  `gravity : cc.Vec2 = cc.v2(0, -320)`

11.  `private phyManager : cc.PhysicsManager`

12.  `    onLoad () {`

13.  `        if(this.enablePhy){`

14.  `            this.phyManager = cc.director.getPhysicsManager()`

15.  `            this.phyManager.enabled = this.enablePhy`

16.  `            if(this.isDebug){`

17.  `                this.phyManager.debugDrawFlags = cc.PhysicsManager.DrawBits.e_shapeBit || cc.PhysicsManager.DrawBits.e_jointBit`

18.  `            }else{`

19.  `                this.phyManager.debugDrawFlags = 0`

20.  `            }`

21.  `            //console.log("系统默认重力加速度:",this.phyManager.gravity)`

22.  `            this.phyManager.gravity = this.gravity`

23.  `        }else{`

24.  `            this.phyManager.enabled = false`

25.  `        }`

26.  `    }`

27.  `}`

2.将组件类挂载到根节点上

二、重力加速度

1: 物理引擎会有一个重力加速度,来模拟物理环境,你可以可以把重力加速度改成0,不受重力影响

2: 修改重力加速度:

1.  `cc.director.getPhysicsManager().gravity = cc.v2(0, -320)`

三、物理刚体cc.RigidBody

1: 刚体:形状不会改变

2: 刚体分为静态,动态刚体, 不受力的刚体(Kinematic,不受作用力的影响)

3: 刚体是受到物理作用的物体,由刚体带着节点移动

4: 刚体组件cc.RigidBoy:

1.  `enabledContactListener: 是否开启碰撞事件的监听`

2.  `bullet: 是否为子d属性,防止高速穿越`

3.  `allowSleep: 是否允许进入休眠状态,一段时间后如果物体没有任何状态改变会进入休眠状态`

4.  `gravityScale: 该物体收重力的缩放`

5.  `linearDamping: 线性阻尼,衰减线性速度`

6.  `angularDamping: 角速度阻尼,衰减角速度`

7.  `linearVelocity: 刚体的线性速度`

8.  `angularVelocity: 刚体的角速度`

9.  `fixedRotation: 是否固定不旋转`

10.  `awake: 是否立刻唤醒此刚体`

11.  `active: 是否激活这个刚体,如果不激活,那么刚体不会参与碰撞`

四、刚体碰撞器cc.Collider

1: 光有刚体还不够,还要为每个刚体添加一个物理性状

2: 物理形状的类型:

1.  `矩形物理碰撞器`

2.  `圆形物理碰撞器`

3.  `多边形物理碰撞器`

4.  `链条碰撞器: PhysicsChainCollider`

3: 碰撞器的物理参数:

1.  `Tag: 碰撞器的标记,区别一个节点上多个不同的碰撞器`

2.  `Density: 形状的密度`

3.  `Sensor: 是否为一个碰撞感应器`

4.  `Friction: 摩擦系数`

5.  `Restitution: d性系数[0, 1], 0没有d性, 1完全d性碰撞`

6.  `Editing: 可以编辑碰撞器的形状`

4: 一定要加物理碰撞器,而不是碰撞系统的碰撞器,非常容易出错误

更多cocos教学视频:

Cocoswww.bycwedu.com/promotion_channels/2146264125?cate=710180854


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11286419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存