鉴于这可能移动到下一个对象,向后,向左和向右在给定的X,Y点。 如何有效的对象以最有效和人类自然的方式使用给定的运动力学引导到X,Y点。
目的是提供用于实时运动,你可以告诉他们“startMoving |方向|()”和“stopMoving |方向|()”。 虽然作为一个附加的扭曲和我有麻烦的一部分,是对象的饰面从未已知的,只有其当前位置是已知的,所以该算法必须“检测”方向。 对象的位置是在单独的线程中500-1second间隔更新。 “请求”更新算法中的位置做出在任何时候进行,但它不是立即可用并且算法必须保持在考虑。 做类似requestAndWaitForCoordUpdate()是完全可以接受的,但是可能没有必要的。
此外,没有任何障碍的出现,我们可以假设你是一个通常开放的平面,流浪到远路之间的直接直线,你可能会遇到障碍。 它是安全的假设,1/4的目标和源之间的距离,应在宽度可用给定的直接路径上。
我还要提到我不知道A * applys在这种情况下,如果是这样,我不能确定如何执行给定的约束。 这里唯一的真正的变量是对象的面。
下面是一些示例代码:
public int[] currentCoords;
public void movement() {
currentCoords[0] = 1005; // starting y coord
currentCoords[1] = 1007; // starting x coord
moveTo(1050, 1025);
}
public void moveTo(int x, int y) {
... how?
}
public void threadUpdatingCoords() {
... periodically check for source coord updates
... between 200ms and 1000ms apart.
}