CocosCreator物体碰撞信息(TS)

刚从unity转到creator
用的的TS语言

物体要具有**物理碰撞效果**,添加组件- 物理组件-collider-boxcollider 会自动加上rigibody组件

creator中默认碰撞是关闭的,需要自己手动开启`此方法一定要写到onLoad生命周期中

在这里插入图片描述
物体碰撞进入此函数
在这里插入图片描述
在creator中没有触发函数,但有一个属性 类似unity的触发效果(解释为进入碰撞回调但不具有物理碰撞效果
在这里插入图片描述
如果两个物体相碰撞想要获取 碰撞信息,例如;**物体碰撞点、两个物体的碰撞速度、碰撞轨迹方向**
这个points返回的是一个向量数组, points[0]就是第一个碰撞点
在这里插入图片描述
获得刚体上指定点的线性速度(这里传入的是碰撞点
在这里插入图片描述
获得物体碰撞后的轨迹方向
在这里插入图片描述
碰撞物体的线性速度,这个获取到的是物体的线性速度,得到的是一个向量
在这里插入图片描述
如果要比较物体的速度,需要把线性速度向量求模 获得number类型的值,比较两个物体速度大小
creator 我没发现求模的函数,vector2.magititute ,只能自己计算,向量的(xx+yy)开根
在这里插入图片描述

这些信息就是 物体碰撞的基本信息了

新手入坑,有不对的地方,请指教!

cocosCreator 3.x中,四叉树碰撞检测是一种高效的场景空间分割技术,用于处理大量游戏对象之间的碰撞检测。四叉树(Quadtree)将游戏世界划分为多个区域,每个节点代表一个矩形区域,然后将这些区域递归地划分成四个更小的子区域,直到达到预定的条件,如区域内物体数量较少不再需要细分。 在ts (TypeScript)文件中,你可以通过以下步骤操作四叉树碰撞检测: 1. 首先,你需要导入cocos creator自带的碰撞库,例如`cc.PhysicsWorld`和`cc.QuadTree`。 ```typescript import { PhysicsWorld, QuadTree } from 'cocos creator'; ``` 2. 创建Physics World实例,并开启碰撞检测: ```typescript const physicsWorld = new PhysicsWorld(); world.addComponent(physicsWorld); physicsWorld.enable(); ``` 3. 初始化并创建QuadTree,通常你在游戏启动时执行: ```typescript const quadTree = new QuadTree(0, cc.size(500, 500), world); quadTree.update(); // 每次添加或删除游戏对象后更新四叉树 ``` 4. 添加游戏对象到Physics World,并注册到QuadTree上: ```typescript let sprite = ...; // 获取一个精灵 const bodyDef = new cc.PhysicsBodyDefinition({ type: cc.PhysicsBodyType.Dynamic }); bodyDef.shape = new cc.PolygonShape(sprite.getBoundingBox()); bodyDef.tag = sprite.id; sprite.addComponent(bodyDef); // 注册到碰撞系统和四叉树 physicsWorld.addBody(bodyDef, sprite.position); quadTree.insert(sprite.position, sprite); ``` 5. 当需要检查碰撞时,可以在四叉树上查找目标区域,比如查询是否与某个位置发生碰撞: ```typescript const collisionPoint = quadTree.queryPoint(position); if (collisionPoint && collisionPoint.length > 0) { // 发生碰撞,处理相应的逻辑 } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值