分隊?wèi)?zhàn)斗行動這個圖形是由進(jìn)攻方向繼承而來的,最大的不同在于,其父類進(jìn)攻方向的尾部是由前兩個點組成的。而這個圖形的箭尾是計算出來的。
(圖一)分隊?wèi)?zhàn)斗行動圖形
其中涉及到的關(guān)鍵點位置如下,該圖形是由4個點(黃色方塊)計算得出的(紅色圓圈)。
(圖二)圖形的點的位置
構(gòu)成圖形部分的核心代碼如下,與進(jìn)攻方向相比,只有箭尾處的計算方法不同。
(圖三)核心代碼
計算箭尾的點坐標(biāo)的代碼如下圖
(圖四)計算箭尾的核心代碼
allLen是所有點連線的長度,tailWidth是allLen和tailWidthFactor(本圖形默認(rèn)0.1)的乘積。那么,tailLeft和tailRight就是第一個點在第二個點的方向上旋轉(zhuǎn)90°后距離tailWidth距離的點,如下圖所示。
(圖五)計算箭尾的示意圖
若是想要將尾部變成下圖所示的燕尾,該如何做呢?
(圖六)分隊?wèi)?zhàn)斗行動(尾)
依然是繼承進(jìn)攻方向,實現(xiàn)的具體代碼如下,紅框中的代碼是與分隊?wèi)?zhàn)斗行動的核心代碼不同的地方。
(圖七)核心代碼
圖解如下,其中swallowTailFactor為1
(圖八)箭尾的計算圖解
2021.10.13 好多人問我要源碼,距離發(fā)文已經(jīng)幾年過去了~~源碼來啦