我正在 XNA 中开发基于植绒的 2D 游戏。我已经实现了 Craig Reynold 的植绒技术,现在我想动态地为该组分配一个领导者,以引导它朝着目标前进。
为此,我想找到一个前面没有任何其他代理的游戏代理并使其成为领导者,但我不确定这方面的数学。
目前我有:
Vector2 separation = agentContext.Entity.Position - otherAgent.Entity.Position;
float angleToAgent = (float) Math.Atan2(separation.Y, separation.X);
float angleDifference = Math.Abs(agentContext.Entity.Rotation - angleToAgent);
bool isVisible = angleDifference >= 0 && angleDifference <= agentContext.ViewAngle;
agentContext.ViewAngle 是一个弧度值,我尝试使用它来尝试获得正确的效果,但这主要导致所有代理都被分配为领导者。
谁能指出我正确的方向来检测一个实体是否在另一个实体的“锥形”视图中?