大家好,今天要给大家介绍的是CocosCreator中如何使用碰撞组件(Collider)来实现碰撞检测。CC中这块做的还是非常好的,不仅能够支持圆形(Circle Clidder),矩形(Box Clidder)和多边形(Polygon Clidder),对于碰撞的边界还是可以自由编辑的。接下来,我们就实现一个正方形单色Sprite和一个星星(spriteFrame)的碰撞检测。创建一个ClidderTest的项目工程,导入相关的图片资源,创建这两个Sprite。效果如下:
先说一下碰撞检测的原理。在cocoscreator中, UI元素是可以分组的,碰撞正是按照组与组进行检测的,比如说我的游戏中有多个玩家,有的玩家发出的是子弹,有的发出弓箭。子弹和弓箭就可以划分为武器组, 而玩家和墙壁都可以划分为目标物组。武器组合目标物组之间可以发生碰撞,这个需要检测到。而同一组之间的元素之间不检测碰撞,子弹和弓箭可以互相穿过而不发生影响,对吧。有人可能说玩家和墙壁也要检测碰撞,严格说也是对的。我只是举个例子嘛。理解分组的意义就好。然后通过给Sprite元素添加Clidder组件来触发加入碰撞。
先给正方形加上BoxClidder.
点击启用编辑,可以看到边框和四个绿点。可以拖拽边框或者直接再右下角填写相关的数值来调整碰撞区域。再来给五角星添加个PolygonClidder