Cocos学习笔记——碰撞回调(1)

接上篇小球落地,如果想让小球落地后反弹,要怎么做哪?
cocos的物理引擎提供了碰撞回调,需要如下步骤开启:
1. 参照前一篇,配置碰撞双方的RigidBody,开启重力引擎
2. 菜单选择“项目”-“项目设置”-“分组管理”,添加分组:ground、balls(这里,物理引擎的碰撞并不需要勾选balls与ground的碰撞关系)
3. “层级管理器”里,分别选择ground、ball节点,配置ground、balls分组
4. 脚本的onLoad内开启重力引擎,小球的脚本内添加碰撞回调:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
....
  onLoad(){
    cc.director.getPhysicsManager().enabled = true;
  }
....
  //碰撞开始时的回调,self为碰撞“主动方”, other为碰撞“被动方”
  onBeginContact(contact, self, other){
    let v = self.body.linearVelocity;
    v.y = 1200;//设置一个向上的速度
    self.body.linearVelocity = v;
    //注意,下面这种写法是无效的:
    //self.body.linearVelocity.y = 1200;
  }
  //碰撞处理结束时的回调
  onEndContact(contact, self, other){
 
  }
....

注意:
a. onBeginContact、onEndContact是系统指定的碰撞引擎的回调方法,不需要绑定,也不能改名
b. 除了“物理组件”引起的碰撞,cocos还有正常运动时产生的碰撞,此时的回调方法是onCollisionEnter,详细使用方法将放到下一篇笔记里

演示:http://dev.jiangkunlun.com/ex/dlx2
转载请注明出处:http://www.jiangkunlun.com/2020/05/cocos_碰撞

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

*