Cocos Creator游戏开发中如何判断几何形状的位置关系

引言

在Cocos Creator游戏开发过程中,经常需要判断几何形状的位置关系,例如:线段与线段是否相交、线段与多边形是否相交、矩形与矩形是否相交、矩形与多边形是否相交、测试一个点是否在多边形中等等。

Cocos Creator游戏开发中如何判断几何形状的位置关系

比如上图,游戏场景中有张地图,鼠标点击地图的时候,做相应处理,点击地图之外则不响应。该如何实现。

一、编辑逻辑地图

首先,我们在地图节点上添加多边形碰撞组件,如下图所示:

Cocos Creator游戏开发中如何判断几何形状的位置关系

接下来我们要判断,玩家点击的区域是否在地图上怎么处理?

二、逻辑地图的点击判断

新建Hittest.js,将此自定义组件挂载到Canvas根节点上。

Cocos Creator游戏开发中如何判断几何形状的位置关系

Cocos Creator游戏开发中如何判断几何形状的位置关系

通过打印我们发现多边形PolygonCollider中有个world属性,其中含有多边形碰撞器的所有顶点坐标,如下图所示,Cocos Creator提供了一个Intersection类用于判断点是否在一系列连续点构成的多边形区域内。

Cocos Creator游戏开发中如何判断几何形状的位置关系

然后运行点击在多边形区域内,会显示Hit,点击之外区域会显示Not hit。

三、总结

在Cocos Creator游戏引擎给我们提供了现成的API可以判断几何形状之间的位置关系。如下图所示:

Cocos Creator游戏开发中如何判断几何形状的位置关系

Cocos Creator游戏开发中如何判断几何形状的位置关系

其它形状的位置判断,大家根据API应该能够明白,有问题的朋友可以给我们留言。