cocos creator 1.5.2 碰撞问题

新手一枚,刚从1.4.2升级上来,初次使用碰撞。
1.地图类型为平面地图
2.摇杆控制8方向移动
3.我依照physics-example给主角依次添加:RigidBody(type:static),PhysicsBoxCollider。
4.添加Physics节点,增加子节点border,barrier,依次添加组件:RigidBody(type:static),PhysicsBoxCollider。

为啥主角移动到Physics节点不会进行物理碰撞?


开启了:

let physicsManager = cc.director.getPhysicsManager();
physicsManager.enabled = true;

physicsManager.debugDrawFlags =
// 0;
// cc.PhysicsManager.DrawBits.e_aabbBit |
// cc.PhysicsManager.DrawBits.e_pairBit |
// cc.PhysicsManager.DrawBits.e_centerOfMassBit |
cc.PhysicsManager.DrawBits.e_jointBit |
cc.PhysicsManager.DrawBits.e_shapeBit
;

形状都绘制出来了,还是没碰撞效果

您好,我最近也遇到碰撞问题,您说的这个情况可能有两个原因。

第一,碰撞检测默认是关闭的,API文档里面有说明,需要用var manager=cc.director.getCollisionManager();
managere.enabled=true;来开启碰撞检测

第二,是否是发生了碰撞检测,但是没有定义onCollisionEnter(other,self)后面的方法。

我能想到就是这个了。

当然我自己做的时候,是创建prefab的时候忘记添加碰撞区域了- -0

可是我看例子的文件中没有代码有

var manager=cc.director.getCollisionManager();
managere.enabled=true;
这一段啊。还有,我还没使用prefab。
我是参照physics-example中的tiled的例子来的。

我看的是写在另外一个脚本里面的,在最开始时候就加载,可能是考虑到你当前节点不是最高级的节点吧?这点我也不肯定,你可以尝试写在一个全局脚本里面的最开始,或者挂到canvas下面。
总之我也是小白,方法我也不敢保证正确,多尝试吧……

你碰撞移动物体给的是getComponent(cc.RigidBody).linearVelocity 赋值吗?

我用的不是物理引擎,你看下1.5版本性能演示的视频,里面有一段写全局变量的时候好像打开的脚本中已经写了物理引擎开关
https://v.qq.com/x/page/a0397ffbwb7.html
1小时15分59秒,快进看一下,是不是这个问题。我也不确定

两个移动物体碰撞貌似要把bullet勾选比较安全。

我现在的了解也并不多,希望有别的大神给点建议,我都还是在跟别的大神学习中…………

哦对,貌似linearVelocity是线性运动,给你发的链接里面有属性说明,希望有帮助……因为我的知识水平是帮不了了……

这句是不是开关……
let physicsManager =cc.director.getPhysicsManager();
physicsManager.enabled=true;

哦对了,我又仔细看了一下你说的问题,碰撞分组设置了没有……另外RigidBody(type:static)这个static类型的话,貌似不受其他任何力的影响……你再看看给你发的视频。

该设置都有设置了,应该还缺少了什么,后面自己代码实现…哎~~~谢谢了,大兄弟

怎么解决的啊,老哥,我也遇到了,就是不回调。真不知道怎么回事

这个是什么原因导致,我的也出现了。出现包围盒但就是没有碰撞,回调也没响应