Ejemplo n.º 1
0
    public static Vector3 GetMinDistanceDirection(Ball ball, List <Gamer> allPlayers)
    {
        var distances = new List <float>();

        for (var i = 0; i < allPlayers.Count; i++)
        {
            distances.Add(Vector3.Distance(allPlayers[i].ball.GetPosition(), ball.GetPosition()));
        }

        int     argMin2   = AttractorPlayer.GetNonZeroMin(distances);
        Vector3 direction = (allPlayers[argMin2].ball.GetPosition() - ball.GetPosition());

        return(direction);
    }
Ejemplo n.º 2
0
    override public Vector3 captureDirection()
    {
        var probability = _random.NextDouble();

        if (probability > 0.7)
        {
            return(new Vector3(_random.Next(0, 5), _random.Next(0, 5), _random.Next(0, 5)).normalized);
        }

        Vector3 direction = AttractorPlayer.GetMinDistanceDirection(ball, allPlayers);

        direction += ball.GetVelocity() * 0.2f;

        return(direction.normalized);
    }