飞机大战-Cocos Creator 碰撞系统实践

 

本文概要

本文主要是讲解Cocos Creator碰撞系统的简单实践,并且结合一个简单小项目-飞机大战,来一起熟悉碰撞系统的使用。demo效果如下图。

 

 

关于Cocos Creator 碰撞基本介绍,可以移步到官方网站去查阅。

https://docs.cocos.com/creator/manual/zh/physics/collision/

 

 

项目简介

 

 

游戏中有一个场景GameScene,然后主界面单独做一个预制体MainPanel。MainPanel中主要节点的用途,上图中已经标注。游戏内的资源是网上随便找的,能用就行。

 

 

在这个项目中,哪里用到了碰撞呢?子弹与敌机,我方战机与敌机之间是会发生碰撞的。子弹与敌机碰撞,都死翘翘;敌机和我方战机也死翘翘,游戏结束。那么我们需要新建组Group。新建三个组,一个enemy(敌机用到),一个hero(我方战机用到),bullet(子弹用到)。然后编辑碰撞对,在上图中,横竖交叉的地方,打钩就是表明,可以发生碰撞。没有交叉则不会产生碰撞。可以看出,本项目中,enemy和hero可以产生碰撞,enemy和bullet可以产生碰撞。

 

 

在游戏中,子弹、敌人、我方战机(简称为英雄)会用到比较频繁,我们单独做成预制体,并且绑定对应的功能脚本。并且为他们添加碰撞组件。添加碰撞组件的步骤是点击添加组件,选择碰撞组件,选择Box Collider(矩形)/Circle Coliider(圆形)/Polygon Collider(多边形)。然后编辑Size大小和相对于节点的位置Offset

 

 

很关键的一点就是要在属性面板中,要选择对应的group。前往别忘记了这点。对应的节点要选择对应的组。enemy 预制体Prefab选择enemy分组,bullet预制体选择bullet分组,hero预制体选择hero分组。

 

在添加碰撞组件的节点对应的脚本中,监听碰撞结果回调,去处理后面的逻辑。这里就不上代码了。

 

 

 

我是小周,一名移动开发程序员。每天学习一点点,从小白到大牛,并非遥不可及。加油!

 

如有错误,还请指出,一起学习,一起进步!感谢你的关注!

做起来简单,码字不易。希望能得到你的点赞~

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos引擎中,可以通过以下步骤来进行碰撞检测: 1. 首先,需要获取碰撞检测系统的实例。可以使用`cc.director.getCollisionManager()`来获取碰撞管理器的实例。 2. 接下来,在碰撞检测的阶段,需要对筛选出来的可能发生碰撞的物体进行精确计算。这个阶段需要判定这些物体是否发生了碰撞,并计算出碰撞点、碰撞法线等细节。 3. 在具体的碰撞检测算法中,可以使用凸包算法来探索碰撞。GJK算法是一种常用的凸包算法,它的核心原理是当两个物体发生重叠时,它们必然有一个坐标相减为原点。在使用GJK算法检测出碰撞后,可以使用EPA算法在GJK构建的数据下进一步计算出穿透的距离、碰撞点和碰撞法线等信息。 综上所述,Cocos引擎中的碰撞检测可以通过获取碰撞检测系统实例,并使用凸包算法等方法来进行精确计算和判定物体是否发生碰撞,从而得到碰撞点和碰撞法线等细节信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Cocos Creator碰撞检测系统](https://blog.csdn.net/weixin_44486991/article/details/86529473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [深入分析物理引擎后,他写了一个轻量的 Cocos 3D 碰撞检测优化方案](https://blog.csdn.net/weixin_44053279/article/details/129560076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值