碰撞检测到底怎么用啊

官方的文档写的也太不清楚了吧.

 setOnCollision: function () {
        var self = this;
        var listener = {
            event: cc.EventListener.Collider,
            /**
             * 当碰撞产生的时候调用
             * @param  {Collider} other 产生碰撞的另一个碰撞组件
             * @param  {Collider} self  产生碰撞的自身的碰撞组件
             */
            onCollisionEnter: function (other, self) {
                console.log('on collision enter');
                // self.node.destroy();

            },
            /**
             * 当碰撞产生后,碰撞结束前的情况下,每次计算碰撞结果后调用
             * @param  {Collider} other 产生碰撞的另一个碰撞组件
             * @param  {Collider} self  产生碰撞的自身的碰撞组件
             */
            onCollisionStay: function (other, self) {
                console.log('on collision stay');
            },
            /**
             * 当碰撞结束后调用
             * @param  {Collider} other 产生碰撞的另一个碰撞组件
             * @param  {Collider} self  产生碰撞的自身的碰撞组件
             */
            onCollisionExit: function (other, self) {
                console.log('on collision exit');
            },
        }
        cc.CollisionManager.addListener(listener);
   
    }
2赞

1、添加碰撞组件,规划碰撞区域。
2、点击菜单栏的项目,选择分组管理。添加碰撞组。
3、把你需要碰撞的精灵归纳到设置好的碰撞组中。属性Node中的Gruop。
4、添加代码。
onCollisionEnter: function (other, self) {
//碰撞的物体的属性自己的在 self变量中,被碰撞的在属性在oter变量中。根据这些做好判断,写你的逻辑就可以了。
}.

附上一份我自己的代码。

温馨提示: 贴代码的时候请使用 Markdown 来 format code,不要截图,你截图别人怎么复制?

我觉得看到思路就行了。复制粘贴别人的逻辑代码就不需要了,不利于学习。

复制粘贴并不是不利于学习,而是方便测试。如果是伸手党,一样对照你的截图敲代码。论坛里面用截图贴代码就是不好的,你看 github 的 gist 和 stackoverflow 谁用图片贴代码?

3赞

有道理,以后再也不用截图了 。

你用的是什么物理引擎,在游戏中如果包含2d和3d物体,应该如何编写碰撞检测

碰撞的文档其实还好,你可以去看范例集合,应该还是比较容易懂的,就是platform那个范例需要花点时间消化。
但是tiledmap的文档就 呵呵 了, tiledmap的知识点要远多于碰撞检测,但是文档属于春秋笔法,极其简略。只有自己去琢磨。

额,是我局限了。子龙大大,get了,下次不截图了

是ccc封装的碰撞引擎。

言之有理,确实是这样,得改~

这个代码是放在碰撞组件所在的Node的脚本上吗?我试了这个方法并没有被触发.

var manager = cc.director.getCollisionManager();
manager.enabled = true;
需要开启碰撞检测系统,默认是关闭的。

使用 cc.director.getCollisionManager(); 子弹打中怪物,偶尔会检测不到碰撞,一般是什么原因,需要怎么设置