Cocos Creator游戲開發(fā)中如何判斷幾何形狀的位置關(guān)系
2020-09-09 16:36 作者:博毅創(chuàng)為 | 我要投稿
引言
在Cocos Creator游戲開發(fā)過程中,經(jīng)常需要判斷幾何形狀的位置關(guān)系,例如:線段與線段是否相交、線段與多邊形是否相交、矩形與矩形是否相交、矩形與多邊形是否相交、測試一個(gè)點(diǎn)是否在多邊形中等等。

比如上圖,游戲場景中有張地圖,鼠標(biāo)點(diǎn)擊地圖的時(shí)候,做相應(yīng)處理,點(diǎn)擊地圖之外則不響應(yīng)。該如何實(shí)現(xiàn)。
一、編輯邏輯地圖
首先,我們在地圖節(jié)點(diǎn)上添加多邊形碰撞組件,如下圖所示:

接下來我們要判斷,玩家點(diǎn)擊的區(qū)域是否在地圖上怎么處理?
二、邏輯地圖的點(diǎn)擊判斷
新建Hittest.js,將此自定義組件掛載到Canvas根節(jié)點(diǎn)上。


通過打印我們發(fā)現(xiàn)多邊形PolygonCollider中有個(gè)world屬性,其中含有多邊形碰撞器的所有頂點(diǎn)坐標(biāo),如下圖所示,Cocos Creator提供了一個(gè)Intersection類用于判斷點(diǎn)是否在一系列連續(xù)點(diǎn)構(gòu)成的多邊形區(qū)域內(nèi)。

然后運(yùn)行點(diǎn)擊在多邊形區(qū)域內(nèi),會顯示Hit,點(diǎn)擊之外區(qū)域會顯示Not hit。
三、總結(jié)
在Cocos Creator游戲引擎給我們提供了現(xiàn)成的API可以判斷幾何形狀之間的位置關(guān)系。如下圖所示:


其它形狀的位置判斷,大家根據(jù)API應(yīng)該能夠明白,有問題的朋友可以給我們留言。
標(biāo)簽: