Cocos2d-X与游戏开发Cocos Creator

Cocos Creator实现基于物理引擎的绳子关节

2020-05-12  本文已影响0人  Thomas游戏圈

本案例使用引擎Cocos Creator v2.1.4。代码编辑工具VSCode或WebStorm。
点击链接加入群聊【unity/cocos交流二群】

一、 物理引擎的开启与使用

1. 可视化编辑基础场景

如上图所示:

【1】新建单色精灵节点bg,添加适配组件Widget,设置距离上下左右分别为0,或者设置bg节点的大小跟Canvas分辨率一致。如下图所示:

【2】新建单色精灵节点red,设置节点颜色为红色,添加RigidBody,设置Type属性值为Dynamic,表示此节点位置可变。添加PhysicsBoxCollider。

【3】新建ground单色渲染节点,设置颜色,设置适配,添加RigidBody组件,设置Type属性值为Static,表示地面位置固定,添加PhysicsBoxCollider组件,如下:

2. 组件化开发(开启物理引擎)

【1】创建一个组件类,要能够被游戏引擎识别。新建enable_phy.js。

【2】实例化得到组件的实例,通过节点上的【添加组件】按钮,或者在代码中使用addComponent方法。如下图所示,通过编辑器,给Canvas节点上添加用户自定义脚本组件enable_phy,开启物理引擎。

【3】在代码中提供固定的入口(、start、update方法),供游戏引擎识别。如下图所示:

运行,红色块会往下掉,掉到ground地面停止。说明物理引擎开启成功。

二、 绳子关节的使用

1. 旋转固定点

如上图所示,新建单色渲染节点blue,添加Widget组件,使得蓝色块位于顶部。作为旋转绳子的挂载点。同时,给blue节点添加RigidBody,设置其Type属性为static,静止的。添加PhysicsBoxCollider。

2. 绳子的制作

如上图所示,新建单色渲染节点,修改节点大小,设置节点颜色;添加RigidBody组件,设置Type属性为Dynamic,可以运动;添加PhysicsBoxCollider;点击【添加组件】按钮,选择【物理组件】-【Joint】-【Rope】,设置最大Max Length为5,将blue节点拖动到Connected Body,表示绳子连接点为Blue节点,然后拖动绳子上的圆圈,可以修改锚点。

复制wire节点,得到wire2节点,修改相关属性如下即可,主要修改wire2连接的刚体为wire,连接上第一段绳子,调整连接的锚点如下图。

同样的道理,我们复制wire2得到wire3,修改wire3连接的刚体为wire2,调整连接锚点,复制wire3得到wire4,修改wire4连接的刚体为wire3,调整连接锚点。如此,一条具有四段的绳子已经制作好了。如下图:

修改地面和red块的摩擦力为0,如下:

三、 运行测试

绳子会在重力的作用下往下摆,红色块会在重力的作用下掉到地面,当绳子撞到砖块会将砖块推向右方,且绳子会继续来回摆动。如上图所示。点击链接加入群聊【unity/cocos交流二群】

上一篇下一篇

猜你喜欢

热点阅读