CocosCreator使用物理引擎和回调

编程入门 行业动态 更新时间:2024-10-11 09:29:34

CocosCreator使用物理引擎和<a href=https://www.elefans.com/category/jswz/34/1771356.html style=回调"/>

CocosCreator使用物理引擎和回调

在2d中开启碰撞需要在项目设置–功能裁剪–2D物理系统【选择 基于Box2D的2D物理系统】
如果想要两个物体碰撞,则需要添加刚体和碰撞【!!重点】

设置刚体类型 可以设为四种,
Static 静态刚体,零质量,零速度,即不会受到重力或速度影响,但是可以设置他的位置来进行移动。该类型通常用于制作场景
Dynamic 动态刚体,有质量,可以设置速度,会受到重力影响。
Kinematic 运动刚体,零质量,可以设置速度,不会受到重力的影响,但是可以设置速度来进行移动
Animated 动画刚体,在上面已经提到过,从 Kinematic 衍生的类型,主要用于刚体与动画编辑结合使用
在设置碰撞体的时候可以选择Editing编辑碰撞体

Regenerate Points输入的值越小,点越密集
监听碰撞代码如下

import {_decorator,Component,Node,RigidBody2D,Collider2D,Contact2DType,PhysicsSystem2D,IPhysics2DContact,tween,Vec3,
} from "cc";
const { ccclass, property } = _decorator;@ccclass("rigidbodys")
export class rigidbodys extends Component {start() {// 注册单个碰撞体的回调函数let collider = this.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);}// 注册全局碰撞回调函数if (PhysicsSystem2D.instance) {PhysicsSystem2D.instance.on(Contact2DType.BEGIN_CONTACT,this.onBeginContact,this);PhysicsSystem2D.instance.on(Contact2DType.END_CONTACT,this.onEndContact,this);PhysicsSystem2D.instance.on(Contact2DType.PRE_SOLVE,this.onPreSolve,this);PhysicsSystem2D.instance.on(Contact2DType.POST_SOLVE,this.onPostSolve,this);}}onBeginContact(selfCollider: Collider2D,otherCollider: Collider2D,contact: IPhysics2DContact | null) {// 只在两个碰撞体开始接触时被调用一次console.log("onBeginContact");}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");}
}

更多推荐

CocosCreator使用物理引擎和回调

本文发布于:2023-11-16 02:46:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1611553.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:回调   物理   引擎   CocosCreator

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!