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