在Cocos Creator游戏开发过程中,经常需要判断几何形状的位置关系,例如:线段与线段是否相交、线段与多边形是否相交、矩形与矩形是否相交、矩形与多边形是否相交、测试一个点是否在多边形中等等。
![](https://img.haomeiwen.com/i19040694/084e1798e3a6d2fa.png)
比如上图,游戏场景中有张地图,鼠标点击地图的时候,做相应处理,点击地图之外则不响应。该如何实现。点击链接加入群聊【unity/cocos交流二群】
一、 编辑逻辑地图
首先,我们在地图节点上添加多边形碰撞组件,如下图所示:
![](https://img.haomeiwen.com/i19040694/afd6481667a22e6b.png)
接下来我们要判断,玩家点击的区域是否在地图上怎么处理?
二、 逻辑地图的点击判断
新建Hittest.js,将此自定义组件挂载到Canvas根节点上。
![](https://img.haomeiwen.com/i19040694/26b5243e079725fe.png)
![](https://img.haomeiwen.com/i19040694/ed494bb2b446ce04.png)
通过打印我们发现多边形PolygonCollider中有个world属性,其中含有多边形碰撞器的所有顶点坐标,如下图所示,Cocos Creator提供了一个Intersection类用于判断点是否在一系列连续点构成的多边形区域内。
![](https://img.haomeiwen.com/i19040694/f78c297b2695c6ab.png)
然后运行点击在多边形区域内,会显示Hit,点击之外区域会显示Not hit。
一、 总结
在Cocos Creator游戏引擎给我们提供了现成的API可以判断几何形状之间的位置关系。如下图所示:
![](https://img.haomeiwen.com/i19040694/b91813a08c401e08.png)
![](https://img.haomeiwen.com/i19040694/c9ad089510baf9b1.png)
其它形状的位置判断,大家根据API应该能够明白,有问题的朋友可以给我们留言。点击链接加入群聊【unity/cocos交流二群】
网友评论