CocosCreator之KUOKUO带你浅析物理系统与代码模拟

引擎版本:2.0.8

编辑工具:VsCode

在做小游戏的时候,我们经常会遇到模拟重力这一需求。

而我们都知道CocosCreator中内置了物理系统。但是我们什么情况下用,什么情况下不用呢?

本文通过一个小项目来说明一些问题。

 

首先:我们的目标是模拟一个物块落体运动。

必须包含:重力模拟,水平初速度,速度衰减(模拟阻力),遇到地面回弹。

好,我们开始吧!

新建项目,利用单色节点完成布局:

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第1张图片

新建了两个脚本,一个是main.js(纯代码实现),一个是physic.js(纯物理实现)。

关于两者混用?

非物理碰撞组件就是对此准备的,不做讨论。

//、、、、、、、、

好了,我们看纯代码实现:

首先声明一些变量:

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第2张图片

update里面做位置改变,留个开关。

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第3张图片

FIX:受到阻力那里,应该跟速度的正负来决定加减,如果速度是正的,阻力应该让它变小,如果是负的,应该加一个正如让它更趋于零。之前失误,在此补充说明下。

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第4张图片

给按钮留个开关,同时赋予水平初速度。

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第5张图片

绑定按钮:

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第6张图片

//、、、、、、、、、

看晕了?不要紧,仔细看看一点也不难,就是有点绕!

看看效果:

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第7张图片

好,需求完全实现,但是却用了很多变量,写了很多代码。

优点是,启动很快,帧率稳定。

//、、、、、、、、、、、、、

接下来,我们移除main.js脚本,放上去physic.js

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第8张图片

嗯。你没看错,就这几句。

按钮记得绑定上。

然后记得给player加刚体与碰撞,给地面也是,并且设置为静态刚体。

地面摩擦力为0,弹力为0,主角player:

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第9张图片

好了,一样的效果:

CocosCreator之KUOKUO带你浅析物理系统与代码模拟_第10张图片

但是很明显,启动时卡了一下FPS。

后续稳定,代码量小。

 

总结:

代码模拟:代码复杂,无需其他配置,性能高。

物理系统:代码简洁,需配置组件属性面板,性能中。

 

好了,希望看完的伙伴们有所收获!O(∩_∩)O~~

 

加我QQ群:(博客里面的项目,群文件里都有哦)

706176551

我们一起学习!

 

O(∩_∩)O~~

你可能感兴趣的:(CocosCreator之KUOKUO带你浅析物理系统与代码模拟)