簡體   English   中英

將對象從點(X,Y)移至點(X,Y)的C#路徑算法

[英]C# Pathing algorithm for moving a object from point(X, Y) to point(X, Y)

給定一個對象,它可以在給定的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.
}

如果我正確理解這一點,則需要確定方向。

另外,您可以查詢當前位置。

您可以在移到新位置之前存儲最后的坐標嗎?

如果是這樣,請使用基本三角函數根據最后一個坐標和新坐標來提取對象移動的角度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM