1
我有一個太空船,有一個位置,目的地和旋轉。當它有一個新的目的地時,它會一直向前移動,直到順着它的目的地。C#矢量,角度和旋轉
代碼:
public void Move()
{
Vector requiredDirection = destination - origin;
requiredDirection.Normalize();
Vector directionNow = new Vector((float)Math.Cos(rotation), (float)Math.Sin(rotation));
float x = Math.Abs(requiredDirection.X - directionNow.X);
float y = Math.Abs(requiredDirection.Y - directionNow.Y);
if ((x > rotationSpeed) || (y > rotationSpeed))
{
rotation += rotationSpeed;
}
shipPosition += directionNow * speed;
}
我的問題是,直到它正面臨其目標船將只在一個方向旋轉,我需要它,這將是最短路徑的方向轉動。
我真的很茫然,從哪裏開始,這是我第一次真正嘗試在矢量。
謝謝馬克,我只是試過,它的工作原理。但是,在設置某些目的地時,船舶將在左轉和右轉之間進行切換,從目的地進行交錯移動,毫無疑問,我的代碼中存在一個錯誤,希望我可以修復。無論如何,你的代碼工作得很好。 – Mitch