public int wannabe(int loc, int dx, int dy) { getVel(v); // v is the velocity in pixels per second // now we want to find out how far we are from the desired location ping(loc, pt, false); // add in the offset, and subtract out the stopping distance // (the /6 was found experimentally to give good results) pt.x+= dx-v.x/6; pt.y+= dy-v.y/6; // convert it to polar coordinates (x=distance, y=angle) cart2polar(pt, pt); // and go there! accelerate(pt.y, (pt.x*pt.x)<<1); // if we're close to the desired location and not moving very fast, // signal that we're ready, and return the forward direction if (pt.x<3 && Math.abs(v.x)<10 && Math.abs(v.y)<10) { setReady(true); return 90; } else { // otherwise, we're not ready. Return the direction we accelerated. setReady(false); return ang; } }