当前位置:网站首页>群组行动控制--自动队列化实现策略

群组行动控制--自动队列化实现策略

2022-08-09 13:02:00 MOVCat

   在RTS类型的游戏中最为常用的就是群组行为控制了,而士兵的群组行动控制并不像鸟儿一样是一种自由的形态,而是成一种标准的方阵组成的,这种方阵型群组行动的方式则是最适合来呈现虚拟世界中的队伍行动状态。

【提示】

    思想最重要,所以本实现策略没有将代码公布出来。喜欢的可以自行实现尝试其中的乐趣。有需要会贴出代码。

【问题分析】

    1.士兵们都被存储在一个线性容器中,方便存取

    2.有一个目标位置

    3.士兵位置队列化

    4.队伍以矩阵群组的行为方式达到目标点

    5.目标点为队伍的中心点

【抽象分析】    --为方便大家学习我特意画了写草图方便大家理解


    矩阵必须为正矩阵即 N*N型的,矩阵的宽为 width = Sqrt(容器长度),如果

width^2 < 容器长度,那么width++。最终则得到一个width^2>=Sqrt(容器长度)的值为矩阵的宽


    每名士兵都有一个观测半径,将其半径内包含的士兵个数存储起来,得到一个半径内包含最多士兵的作为队伍的重心即中心点


    每名士兵分别计算出中心到自身的矢量向量directionHead(灰色向量指向自身)从而得出自身与中心的相对位置,方便队伍形状在移动时的士兵位置定位


    这样就能得出一个以队伍重心为矩形的队伍形状,将每位士兵的矩阵位置<x,y>存储在一个int[2] point的数组内。

    能得到详细的士兵与队伍矩形中心的相对位置 = directionHead的标准值 * Vector2(point[0] * space, point[1] * space)。space为两个士兵之间的间距。


【改进】

1.增强了矩阵效果

【问题分析】

    1.士兵们都被存储在一个线性容器中,方便存取

    2.有一个目标位置

    3.士兵位置队列化

    4.目标点为队伍的中心点,直接将矩阵中心作为中心点




最后声明未经同意不得转载

原网站

版权声明
本文为[MOVCat]所创,转载请带上原文链接,感谢
https://blog.csdn.net/f980511/article/details/80369393