public static void DebugPlotVectorOnMap(CurrentGameState state, System.Drawing.Point[] points = null)
{
if (state.FriendlyHeroes == null) return;
var src = GrabScreenGDI(gameScreen);
//var thresholded = ThresholdCropBitmap(src, new Rectangle(1450, 775, 450, 350), 200);
var sourceImage = ChangePixelFormat(src, PixelFormat.Format24bppRgb);
src.Dispose();
var gc = Graphics.FromImage(sourceImage);
var greenBrush = new SolidBrush(Color.Lime);
var redBrush = new SolidBrush(Color.Red);
var font = new Font(SystemFonts.DefaultFont.FontFamily, 50);
foreach (var point in state.TowersFound)
{
gc.DrawString("T", font, redBrush, point.X, point.Y);
}
foreach (var point in state.EnemyHeroes)
{
gc.DrawString("H", font, redBrush, point.Position.X, point.Position.Y);
}
foreach (var point in state.FriendlyHeroes)
gc.DrawString("H", font, greenBrush, point.Position.X, point.Position.Y);
foreach (var point in state.EnemyCreepsNearby)
gc.DrawString("C", font, redBrush, point.X, point.Y);
foreach (var point in state.FriendlyCreepsNearby)
gc.DrawString("C", font, greenBrush, point.X, point.Y);
try
{
var pp = new System.Drawing.Point();
foreach (var p in points)
{
gc.DrawEllipse(new Pen(Color.Magenta), p.X - 4, p.Y - 4, 8, 8);
if (!pp.IsEmpty)
gc.DrawLine(new Pen(Color.Lime), pp, p);
pp = p;
}
}
catch (Exception e)
{
}
gc.Dispose();
sourceImage.Save("./debug/ss.png");
sourceImage.Dispose();
}