Exemplo n.º 1
0
    private static Vector2 Overstear(Context cx, Pod pod, out double?angle)
    {
        angle = null;

        var node = pod.NextNode(cx);

        if (pod.Velocity.Magnitude() < 50)
        {
            return(node.Pos);
        }

        var targetVector = node.Pos - pod.Pos;

        angle  = pod.Velocity.Angle(targetVector);
        angle += (angle * 0.15);// * Math.Sign(angle.Value);

        var newT = pod.Velocity.Normalize().Rotate(angle.Value) * targetVector.Magnitude();

        return(newT + pod.Pos);
    }