Exemplo n.º 1
0
        private void DrawBehaviourLines(MovingAgent agent)
        {
            if (Utilities.IsLineCohesionDrawingOn)
            {
                if (agent.GetCohesionLine() != Vector2.Zero)
                {
                    if (agent.GetCohesionWeight() > 0 && agent.GetCohesionWeight() < 0.2)
                    {
                        DrawLine(0.2f, Color.Blue, agent.Position, agent.GetCohesionLine());
                    }
                    else
                    {
                        DrawLine(agent.GetCohesionWeight() + 0.2f, Color.Blue, agent.Position, agent.GetCohesionLine());
                    }
                }
            }

            if (Utilities.IsLineAlignmentDrawingOn)
            {
                if (agent.GetAlignmentLine() != Vector2.Zero)
                {
                    if (agent.GetAlignmentWeight() > 0 && agent.GetAlignmentWeight() < 0.2)
                    {
                        DrawLine(0.2f, Color.Green, agent.Position, agent.GetAlignmentLine());
                    }
                    else
                    {
                        DrawLine(agent.GetAlignmentWeight(), Color.Green, agent.Position, agent.GetAlignmentLine());
                    }
                }
            }

            if (Utilities.IsLineSeperationDrawingOn)
            {
                if (agent.GetSeperationLine() != Vector2.Zero)
                {
                    if (agent.GetSeperationWeight() > 0 && agent.GetSeperationWeight() < 0.2)
                    {
                        DrawLine(0.2f, Color.Red, agent.Position, agent.GetSeperationLine());
                    }
                    else
                    {
                        DrawLine(agent.GetSeperationWeight(), Color.Red, agent.Position, agent.GetSeperationLine());
                    }
                }
            }

            if (Utilities.IsLineSeekDrawingOn)
            {
                if (agent.GetSeekLine() != Vector2.Zero)
                {
                    if (agent.GetSeekWeight() > 0 && agent.GetSeekWeight() < 0.2)
                    {
                        DrawLine(0.2f, Color.Yellow, agent.Position, agent.GetSeekLine());
                    }
                    else
                    {
                        DrawLine(agent.GetAlignmentWeight(), Color.Yellow, agent.Position, agent.GetSeekLine());
                    }
                }
            }
        }