cocos creator 3.x 2d物理碰撞检测(不使用物理刚体)

前言

我含着热泪而来,因为获取不到2d物体的碰撞检测弄了半天。之前一直学2.x,后面学了3.x版本,发现对于新手来说,蛮多需要去适应的,最主要的是引擎一直在更新,然后在网上为数不多的教程又更新很慢,而且大部分教程都是老接口,试了好多接口都不行。

官方2d物理检测文档:点击这里

在文档中只有脚本代码

步骤1:修改为‘内置2D物理系统’,不然无法进行碰撞检测

官方解析: Cocos Creator 支持内置的轻量 Builtin 物理系统和强大的 Box2D 物理系统。Builtin 物理系统只提供了碰撞检测的功能,对于物理计算较为简单的情况,我们推荐使用 Builtin 物理模块,这样可以避免加载庞大的 Box2D 物理模块并构建物理世界的运行时开销。而 Box2D 物理模块提供了更完善的交互接口和刚体、关节等已经预设好的组件。

你可以根据需要来选择适合自己的物理模块,通过编辑器主菜单中的 项目 -> 项目设置 -> 功能裁剪 切换物理模块的使用。

步骤2:创建两个单色节点,并且添加cc.BoxCollider2D (2d的物体用的都是2D的组件 )


步骤3:添加两个分组,并且勾选碰撞矩阵

步骤4:设置bule节点为bule分组,yellow为yellow分组

步骤5:创建一个phycisc.ts脚本,挂载在blue节点上,并且让两个节点挨在一起


import { _decorator, Component, Node, Collider, EPhysics2DDrawFlags, RigidBody, Constraint, PhysicsSystem2D, BoxCollider, director, Contact2DType, Collider2D, IPhysics2DContact, BoxCollider2D, PolygonCollider2D } from 'cc';
const { ccclass, property } = _decorator;@ccclass('phycisc')
export class phycisc extends Component {onLoad() {//绘制物理信息PhysicsSystem2D.instance.enable = true;PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Aabb |EPhysics2DDrawFlags.Pair |EPhysics2DDrawFlags.CenterOfMass |EPhysics2DDrawFlags.Joint |EPhysics2DDrawFlags.Shape;// 注册单个碰撞体的回调函数let collider = this.node.getComponent(Collider2D);if (collider) {collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);collider.on(Contact2DType.END_CONTACT, this.onEndContact, this);collider.on(Contact2DType.PRE_SOLVE, this.onPreSolve, this);collider.on(Contact2DType.POST_SOLVE, this.onPostSolve, this);}}onBeginContact(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {// 只在两个碰撞体开始接触时被调用一次console.log('onBeginContact', otherCollider);}onEndContact(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {// 只在两个碰撞体结束接触时被调用一次console.log('onEndContact');}onPreSolve(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {// 每次将要处理碰撞体接触逻辑时被调用console.log('onPreSolve');}onPostSolve(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {// 每次处理完碰撞体接触逻辑时被调用console.log('onPostSolve');}
}

输出结果

cocos creator 3.x 2d物理碰撞检测(不使用物理刚体)相关推荐

  1. 小游戏开发上手体验 - Cocos Creator

    微信群里最大的骚扰源有两种: 一是转发#吱口令#~!@#¥%--&*,长按复制此消息领红包之类的 另一种就是各种小程序和小游戏的分享 前天有同学无意间把一个小游戏分享到了答疑群中,我看了一下, ...

  2. Cocos Creator v1.5发布:物理集成、2D摄像机、TypeScript

    经过1个多月的Beta版发布和社区测试,直至跳票两周之后,我们终于能够发布 Cocos Creator v1.5 正式版了.这个版本又给大家带来了很多实用的新功能. Cocos Creator 作为第 ...

  3. 2d游戏引擎_Cocos Creator:用 2D 物理碰撞撸 3D 横版酷跑

    本人首发于 CSDN 博客:KUOKUO 众享 Cocos 已获得转载授权! 作者:EEA阔宝,专注 Cocos Creator 引擎小游戏开发两年,开发微信小游戏 5 款.H5 小游戏多款. 引擎版 ...

  4. 物理挖洞之分块 !Cocos Creator !

    减少多边形计算!画饼分之- 效果预览 回顾 在 物理挖洞之链条!实现!(含视频讲解) 中介绍了用 PolyBool 和链条组件(cc.PhysicsChainCollider)实现物理挖洞的方法. 虽 ...

  5. Cocos Creator 3.0 入门 ! 2D 素材 3D 效果!

    用 2D 素材实现 3D 效果! 前言 好久没写教程笔记了,不知大伙是否想念教程干货了? 温馨提示:所有内容纯属个人瞎玩研究,如要上线项目,请自行评估~ oh 最近逛论坛,看到有一位小伙伴想实现下面这 ...

  6. cocos creator 3.x 精灵不显示、加载动态图片、物理碰撞、人物跟随鼠标移动、碰撞后节点销毁

    温馨提醒:即刻转去Unity3d 精灵不显示: 不要在空节点下直接添加组件 正确的做法是:在空节点(Node)上右键创建一个精灵才会给看到 或者直接拖曳一个图片放到场景编辑器中也可 cocos cre ...

  7. Cocos Creator 3.1 携多线程渲染架构和 PhysX 物理支持强势登场

    Hi,各位开发者们.v3.0 过后,引擎组就投入了 Cocos Creator 3.1 的开发,终于在今天顺利发布啦. 3.0 版本的推出标志着 Creator 迈向了一个全新的征程,而 Creato ...

  8. cocos creator粒子不变色_隐秘的物理粒子系统与渲染 !Cocos Creator LiquidFun !

    让 cocos Q弹起来!物理流体之 LiquidFun 流体纹理 shader ! 效果预览 让 Cocos Q弹起来吧! 原理 物理粒子系统 引擎内置的 box2d.js 其实已经携带了 goog ...

  9. Cocos Creator 开发实战——篮球物理游戏

    Cocos Creator 开发实战--篮球物理游戏 知识点 教程 基础背景搭建 物理系统 篮网制作 篮球 结语 Cocos Creator 开发实战--篮球物理游戏 本篇文章教大家实现篮球物理游戏最 ...

最新文章

  1. nvm npm不是内部命令_npm作弊表-最常见的命令和nvm
  2. 出现“Could not resolve host: www.github.com; Unknown error”错误解决
  3. MongoDB shell 操作
  4. 网络服务器开发总结(转:http://my.oschina.net/u/181613/blog/596022)
  5. markdown的11个语法
  6. geth 以太坊钱包_以太坊Geth节点RPC API中文文档
  7. python具有伪代码的本质吗_Python的优点之一是具有伪代码的本质。( )_学小易找答案...
  8. leetcode283.移动零
  9. IO多路复用之select、poll、epoll详解
  10. 画圆角 - HTML5 Canvas 作图
  11. 哈夫曼编码+python实现
  12. PL\SQL结构控制、异常
  13. USE_DB_RECOVERY_FILE_DEST的使用详解(转载)
  14. windows 一键设置ip地址脚本
  15. 必须收藏的文档:IronPython脚本在TIBCO Spotfire中的使用
  16. 五大领域总目标指南_五大领域总目标记忆口诀
  17. Spring中Resource接口详解
  18. python父亲节祝福_2020年精选优美的父亲节祝福语28条
  19. Java枚举的打印_如何在java中打印所有枚举值?
  20. 集成学习中boosting、bagging、随机森林算法的介绍

热门文章

  1. mandriva 安装 drcom (2)
  2. 程序员去哪里找国外朋友来进行学习英语?
  3. 一步到位安装R环境(R,Rattle,RStudio)
  4. Bluej学习和Java学习(3):封装,构造函数,JavaDOC,字符串,数组
  5. 502粘到手上变硬了怎么办_502胶水粘性大,不小心粘住手也别怕,几个妙招轻松搞定...
  6. 投资回收期、投资回收率
  7. 肘关节附属运动测试软件,肘关节功能锻炼常用方法
  8. c#与web端通信---【c#wfp项目使用webview实现和vue项目通信】
  9. mysql和foxbase_Mysql使用基础知识和MYSQL数据库的简单操作 -(转)
  10. 一键快速设置图层lisp程序_CAD快速切换图层LISP代码 -