2012-01-19 71 views
0

我在c#XNA中查詢操縱矢量。我現在有一個2D紋理設置爲子畫面的中心的原點和兩個分開的載體是相對於該原點,像這樣:c#XNA 2d相對於原點的矢量點

ship1.Engine1.X = (float)Math.Cos(ship1.Angle) * 50 + ship1.Position.X; 
ship1.Engine1.Y = (float)Math.Sin(ship1.Angle) * 50 + ship1.Position.Y; 
ship1.Engine2.X = (float)Math.Cos(ship1.Angle) * -50 + ship1.Position.X; 
ship1.Engine2.Y = (float)Math.Sin(ship1.Angle) * -50 + ship1.Position.Y; 

這些發動機矢量的兩個具有用於火箭粒子效果,並所以需要定位在精靈的排氣管上。它們沿着船紋理的相對X軸排列,但是我不能在將它們向下移動的相對Y軸上算出數學。我會怎麼做呢?提前致謝。

我的意思是:http://i.stack.imgur.com/S5bkS.png

+0

更換ship1.Angle請出示你在那裏操縱的粒子效果(你現在有什麼)方向的代碼。你只是顯示上面的位置。 'Engine1'和'Engine2'中的方向是如何定義的? – ja72

+0

請澄清:您已經正確定位了發射器,但是您希望粒子在'ship1.Angle-180'中移動? – annonymously

+0

@annonymously:關閉,但Math.Cos和Math.Sin採用弧度,而180度仍然會將它放在同一軸上,正好相反。我相信他需要用ship1.Angle + MathHelper.PiOver2或者ship1.Angle - MathHelper.PiOver2取代ship1.Angle。 –

回答

0

你給點相同的旋轉作爲船舶。

嘗試要麼ship1.Angle + MathHelper.PiOver2ship1.Angle - MathHelper.PiOver2