Beispiel #1
0
 public walkPath(float xc, float yc, float xt, float yt, DogsMind mind)
 {
     min_x  = mind.min_x;
     min_y  = mind.min_y;
     max_x  = mind.max_x;
     max_y  = mind.max_y;
     myMind = mind;
     int[] node;
     path     = new ArrayList();
     open     = new ArrayList();
     backmapX = new int[256, 256];
     backmapY = new int[256, 256];
     myMind.freeGridPoint(xc, yc, out start_x, out start_y);
     myMind.freeGridPoint(xt, yt, out end_x, out end_y);
     if (start_x < min_x || start_y < min_y || end_x < min_x || end_y < min_y ||
         start_x > max_x || start_y > max_y || end_x > max_x || end_y > max_y)
     {
         return;
     }
     if (start_x == end_x && start_y == end_y)
     {
         return;
     }
     backmapX[start_x, start_y] = start_x;
     backmapY[start_x, start_y] = start_y;
     node = new int[2] {
         start_x, start_y
     };
     open.Add(node);
     if (buildBackMaps() == false)
     {
         return;                           // can't get there
     }
     buildPath();
 }
Beispiel #2
0
 public dogTask(DogsMind dm, string t_name)
 {
     task_name      = t_name; // task name
     myMind         = dm;
     target_objects = new ArrayList();
     dm.myDog.Coordinates(out dm.myContext.start_pos_x, out dm.myContext.start_pos_y);
     dm.myContext.start_angle = dm.myDog.Orientation();
 }