Пример #1
0
  public void animate() {
    // invert path.
    Coord path = PG.search(goby, gobx, profy, profx);
    // coord path = PG.search(profy,profx, goby,gobx);
    if (path == null) {
      display.setColor(Color.red);
      display.drawString("NO PATH TO TARGET!", 50, 100);
      System.out.println("no path");
      return;
    }
    int px = 0, py = 0; // for calculating graphical coords
    while (path != null) {
      px = getx(path.y, path.x);
      py = gety(path.y, path.x);
      display.drawImage(
          imagechar[PG.M[path.y][path.x]], (px - gap / 2), (py - gap / 2), gap, gap, null);
      //	      display.drawImage(imagechar[PG.M[path.y][path.x]],
      //				(path.x*gap),(path.y*gap)+yoff,gap,gap,null);

      System.out.printf("%d,%d: %d\n", path.y, path.x, PG.M[path.y][path.x]);

      try {
        Thread.sleep(250);
      } catch (Exception se) {
      }
      //	      display.drawImage(imageof[PG.M[path.y][path.x]],
      //				(path.x*gap),(path.y*gap)+yoff,gap,gap,null);
      //	      display.setColor(Color.red);
      //      	      display.fillOval((path.x*gap)+8,(path.y*gap)+yoff+8,4,4);
      // for animation:
      //	      display.drawImage(diamondgif,gobx*gap,goby*gap+yoff,gap,gap,null);

      if (!showtrace) // erase trail - redraw hexagon
      {
        display.setColor(colorof[PG.M[path.y][path.x]]);
        display.fillPolygon(HX[path.y][path.x]);
      }
      path = path.prev;
    } // with path!=null
    px = getx(goby, gobx);
    py = gety(goby, gobx);
    display.drawImage(diamondgif, px - gap / 2, py - gap / 2, gap, gap, null);
    display.drawImage(imagechar[PG.M[goby][gobx]], px - gap / 2, py - gap / 2, gap, gap, null);
  } // animate