原创

Cocos Creator零基础游戏实战《左右跳》JS教程06-判断机器人是否踩空

本章简介

本章教大家使用Cocos Creator怎么给游戏添加碰撞检测。我们的游戏逻辑是机器人可以向左跳跃和向右跳跃,当石头在左侧,向左跳,当石头在右侧,向右跳。跳错方向游戏结束。我们怎么判断机器人有没有跳跃到石头上,可以通过碰撞组件来检测是否跳跃在石头上。

给机器人添加碰撞组件

我们给机器player节点添加碰撞组件。选中player节点,在属性检查器最下面的添加组件里选择碰撞组件Polygon Collider

file

我们给碰撞组件设置一个Tag标签,来区分碰撞组件。这里我们设置机器人碰撞组件的Tag0。勾选Editing,可以看到边框线,这个边框就是碰撞组件的范围。

file

调整碰撞组件检测范围。

file

给石头添加碰撞组件

我们给石头添加碰撞组件,因为石头是预制体,我们不能编辑,所以需要重新制作石头的预制体。我们可以把原来的石头预制体删除,但是删除之前需要先和start脚本解绑,不然会报错。打开start场景,选中Canvas,在右侧属性检查器里,把引用的石头预制体删除,点那个红圈圈起来的符号。

file

然后重新制作石头预制体,绑定box脚本,添加碰撞组件。

file

制作完成重新给start脚本绑定box预制体引用。

file

开启碰撞检测

给机器人添加好碰撞组件,我们还需要通过代码开启碰撞检测。我们在点击结束时开启碰撞检测,在player脚本添加代码。

onLoad () {
        this.node.parent.on(cc.Node.EventType.TOUCH_END,function(event){
            console.log('end');
            this.isTouched = false
            // 开启碰撞检测
            var manager = cc.director.getCollisionManager();
            manager.enabled = true;            
            this.scheduleOnce(function(){
                this.checkIsFailed();
                manager.enabled = false;        
            },0.15);
        },this);
},

开启碰撞检测,我们在box脚本里添加三个碰撞检测的回调函数。在box脚本添加代码。

onCollisionEnter: function(other, self) {
        console.log('enter');
 },
 onCollisionStay: function (other, self) {
        console.log('stay');
 },
 onCollisionExit: function (other, self) {
        console.log('exit');
 },

onCollisionEnter方法里,关闭碰撞检测,表示检测到碰撞就关闭碰撞检测。

onCollisionEnter: function(other, self) {
        console.log('enter');
        // 关闭碰撞检测
        var manager = cc.director.getCollisionManager();
        manager.enabled = false;
},

给机器人添加控制脚本player。添加碰撞检测回调函数。

本章源码地址

码云地址:https://gitee.com/cbb123/LR06

本章内容到此结束,觉得对你有帮助的记得收藏本站,谢谢老铁们的支持!

正文到此结束
本文目录