C#用于将对象从点(X,Y)移动到点(X,Y)的路径算法

时间:2011-03-21 20:47:00

标签: c# algorithm artificial-intelligence coordinates pathing

给定一个物体,它可以在给定的X,Y点向前,向后,向左和向右移动。如何使用给定的运动机制以最有效和最自然的方式将物体有效地引导到X,Y点。

对象可以实时移动,您可以告诉他们“startMoving”和“stopMoving”。虽然作为一个额外的扭曲和我遇到麻烦的部分,是对象的面对是永远不知道的,只有它的当前位置是已知的,所以算法必须“检测”方向。对象的位置在500-1秒间隔的单独线程中更新。在任何时候都可以使用“请求”更新算法中的位置,但是它不能立即使用,并且算法必须考虑到这一点。像requestAndWaitForCoordUpdate()那样做是完全可以接受的,但可能不需要。

以下是一些示例代码:

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.
}

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你需要确定你的方向。

此外,您可以查询当前位置。

你可以在去新位置之前存储你的最后一个坐标吗?

如果是这样,使用基本三角函数根据最后一个坐标和新坐标提取对象移动的角度。