我試圖創建一個函數,將採取一個點,一個距離,讓我在圈內氡位置在距離..例如試圖寫行星軌道的數學
SpawnPlanet(PlanetToOrbitAround,距離200 px)返回距離行星200像素的「圓」點。
我也期待對於實際旋轉邏輯,所以一個I產卵行星我有一個方法
UpdateRotation(PlanetToOrbitAround,OrbitingPlanet,200像素的距離,5度的速度)
我數學可怕,我找到了一些例子,我發現的一切似乎都不適合我(可能是因爲我對數學的理解不夠)。旋轉似乎對圍繞太陽的行星的工作,而不是圍繞行星月亮
公共Vector2 RotateAboutOrigin(Vector2點,Vector2產地,浮動旋轉) { 回報Vector2.Transform(點 - 起源,矩陣。 CreateRotationZ(rotation))+原點; }
是我使用的邏輯。與呼叫這樣...
mPlanetLocation = RotateAboutOrigin(mPlanetLocation, new Vector2(GraphicsDevice.Viewport.Width/2 - 25, GraphicsDevice.Viewport.Height/2 - 25), .005f);
mMoonLocation = RotateAboutOrigin(mMoonLocation, mPlanetLocation, .005f);
月亮奇怪和橢圓形旋轉。任何幫助將是偉大的!
謝謝!這個伎倆。我基本上在構造函數中添加了Angle = Math.Rand(0,364);並且它會在您指定的距離處生成並沿着該點在隨機位置生成。謝謝您的幫助! – willthiswork89
沒問題,很高興它的工作。 – Cyral