摘要

有趣的物理小游戏总能让小伙伴们爱不释手,而 CocosCreator 的内置物理引擎让其开发变得更加简单。今天 KUOKUO 就为大家带来物理的加速带,让主角小恐龙起飞!

正文

使用版本

  • CocosCreator 版本 2.1.3

最终效果


物理系统

在 CocosCreator 中有两套碰撞系统,不是 Physic 开头的就不是物理碰撞,通常用来做简单的碰撞检测。若我们想构建物理世界,那就要用刚体和物理碰撞组件了。最常用的:RigidBody + PhysicsBoxCollider。

还需在 onLoad() 方法中开启物理引擎:

cc.director.getPhysicsManager().enabled = true;

物理碰撞

在勾选开启物理监听后,物理碰撞发生后会触发该刚体节点上绑定脚本中的碰撞回调。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BBE0NW0j-1581684893655)(http://cdn.kuokuo666.com/20200214/tt1.png)]

我们在碰撞物体上绑定脚本写下这几个回调方法,在发生碰撞后会依次的触发。

cc.Class({extends: cc.Component,properties: {},// 只在两个碰撞体开始接触时被调用一次onBeginContact: function (contact, selfCollider, otherCollider) {},// 只在两个碰撞体结束接触时被调用一次onEndContact: function (contact, selfCollider, otherCollider) {},// 每次将要处理碰撞体接触逻辑时被调用onPreSolve: function (contact, selfCollider, otherCollider) {},// 每次处理完碰撞体接触逻辑时被调用onPostSolve: function (contact, selfCollider, otherCollider) {}});

加速的实现

首先,我们要明白那 3 个参数的意义,尤其是 contact 最为重要。selfCollider 和 otherCollider 很容易理解,selfCollider 指的是自身节点上的碰撞体,ohterCollider 指的是发生碰撞的另一个碰撞体。那么这个 contact 是什么呢?它包含碰撞的信息,比如碰撞的位置和法向量,类型是 cc.PhysicsContact。我们怎么使用它呢?如图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DbSgy6N9-1581684893656)(http://cdn.kuokuo666.com/20200214/tt3.png)]

加速的实现就是调用了设置切线速度的API。注意要在 onPreSolve 中,在处理信息之前。

onPreSolve: function (contact, selfCollider, otherCollider) {contact.setTangentSpeed(1500);
},

不同地形实现

除了加速,我们还可以设置摩擦力,比如我们有两种地形,冰雪路面和沼泽地形。

// 冰雪
contact.setFriction(0.25);
// 沼泽
contact.setFriction(0.85);

物理系统常见问题

  • 不在 onLoad 中开启物理系统,而是在 start 中开启,无效的!
  • 未设置碰撞分组,无效果。
  • 带有刚体的物理节点,位置不受父节点影响的。
  • 更新了物理碰撞盒的属性没生效?因为没调用 apply() 方法!或者在组件 enabled 为 false 时改变。
  • 勾选了 sensor 可就没碰撞效果了。
  • 如果你使用了物理系统,就最好通过力来运动物体了,除非是 Static 或者 Animated 再直接改变属性。
  • Rigidbody 有个 getLinearVelocityFromWorldPoint() 方法可以得到线速度,通过方向你就知道主角是用头顶的方块还是用脚踩的。
  • 修改全局重力 cc.director.getPhysicsManager().gravity = cc.v2(0, 0);
  • 如果手机太卡,记得把物理刷新频率从 60 降为 30。

结语

有意思吧!我们下篇文章讲讲射线检测。

O(∩_∩)O~~

微信公众号

CocosCreator之KUOKUO带你做个加速带!起飞!相关推荐

  1. CocosCreator之KUOKUO带你做疯狂木板-变长(1)

    本次引擎2.0.5 编辑工具VSCode 目标: 第一部分,手指点击变长的木板. 这种类型的微信小游戏还是很多滴,今天KUOKUO带大家做一做. 我们新建一个工程: 加个bk背景,保存为game场景. ...

  2. CocosCreator之KUOKUO带你做双摄像机-单独渲染UI

    引擎版本 CocosCreator v2.1.2 引言 相信小伙伴们在做摄像机跟随主角的游戏时会遇到 UI 节点不动的问题,眼睁睁的看着按钮远去.如何解决呢?建立两个摄像机分开渲染即可. 问题演示 首 ...

  3. CocosCreator之KUOKUO带你做喵喵的跳跃

    本次引擎2.0.5 编辑工具VSCode 如遇不会某个步骤可以先过一遍之前教程,或者下方评论,感谢支持! 目标:喵喵的跳跃 今天教大家CocosCreator的动作函数: 它可以实现平滑的每秒60帧左 ...

  4. CocosCreator之KUOKUO带你做个基于物理的跑酷游戏第二部分-做个动画加点炸弹

    本次引擎2.0.5 编辑工具VSCode 目标:第二部分,做个主角动画,加入炸弹. 把帧动画资源导入,然后把zhujue大小改了,图片改为我们序列帧动画第一个. 素材结尾给出. 打开动画编辑器,弄一个 ...

  5. CocosCreator之KUOKUO带你做自己的艺术数字字体

    实现效果 教程链接 https://www.bilibili.com/video/av55801008 O(∩_∩)O~~

  6. CocosCreator之KUOKUO带你做音乐可视化

    摘要 音乐干听多没劲,来点可视化效果让音乐"动"起来!底部源码分享! 正文 说明 在浏览器端 AudioContext 是一个专门用于音频处理的接口,工作原理是将 AudioCon ...

  7. CocosCreator之KUOKUO带你做个电玩叠乌龟游戏

    引擎版本: 2.0.10 编程语言: TypeScript 视频链接: https://www.bilibili.com/video/av57323107 开源地址在视频简介中. 欢迎大家去哔哩哔哩关 ...

  8. CocosCreator之KUOKUO带你做个基于物理引擎的绳子关节的duang~

    本次引擎2.0.5 编辑工具VSCode 目标:基于物理引擎的绳子关节的duang~ 来吧,让我们走进物理世界! 新建工程: 单色精灵背景,单色精灵地面. 然后给ground加刚体,加个物理碰撞盒子. ...

  9. CocosCreator之KUOKUO带你做个基于物理引擎的轮子小车的duang~

    本次引擎2.0.5 编辑工具VSCode 目标:基于物理引擎的轮子小车的duang~ 来吧,让我们走进物理世界! 新建工程: 单色精灵背景,单色精灵地面. 然后给ground加刚体,加个物理碰撞盒子. ...

最新文章

  1. vue.config.js配置代理不生效_iMac各种代理设置方法汇总
  2. 一致性Hash(Consistent Hashing)原理剖析
  3. 三个点拟合圆形的函数C#
  4. php中使用exec,system等函数调用系统命令
  5. linux用命令行进行无线连接,linux以命令行下配置连接wlan无线网卡
  6. 【TensorFlow】优化方法optimizer总结(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)解析(十三)
  7. centos7 致命错误:curl/curl.h:没有那个文件或目录 #include curl/curl.h
  8. 苹果召回部分产品;罗永浩锤子商城并入字节跳动;美团打车上线上海南京 | 极客头条...
  9. Go Elasticsearch 删除快速入门
  10. 2018-2019-1 20165208 《信息安全系统设计基础》第5周学习总结
  11. ADO.NET DataReader对象简介
  12. Git:常用命令(自用)
  13. idea设置护眼主题
  14. 利用Python爬取3万多条上海二手房信息,我得出的结论是?
  15. css font-size 失效,css font-size不管用的经解决方法
  16. 如何编写yaml格式的Ansible主机清单(inventory)及清单变量使用Demo
  17. 力扣(20.232)补9.6
  18. oracle 怎么看监听文件,【学习笔记】Oracle11G关于监听文件位置与监听文件大小限制...
  19. 又是一年推gal季(牛客OI周赛5-提高组)
  20. 在冒险中打拼:教师到手机大亨的打拼路

热门文章

  1. Linux进阶_时间同步服务
  2. 【Kettle 工具】如何安装及连接达梦数据库
  3. 如何关闭计算机Tcp5900端口,电脑135/139端口是干什么的 Windows如何关闭135/139端口方法...
  4. 基于Python实现看图说话和微表情识别【100010260】
  5. WAS用命令创建节点
  6. 淘宝导购网-爱淘购上线啦
  7. 录音播放系统(实现pcm转码mp3,wav)
  8. 【PTA R7-8】简单选择排序显示第K趟
  9. idea左边栏不见了怎么办
  10. PHP反射类ReflectionClass、异常处理Exception