2012-01-19 9 views
0

私はc#XNAでベクトルを操作するためのクエリを持っています。私は現在、スプライトの中心に設定され、原点を有する2Dテクスチャ、及び、その原点に対して相対的であるようなので二つの別々のベクターを有する:これらの両方のエンジンベクトルのC#XNA 2次元の起点からのベクトル点

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をship1.Angle + MathHelper.PiOver2またはship1.Angle - MathHelper.PiOver2のいずれかに置き換える必要があると思います。 –

答えて

0

あなたがポイントに船と同じ回転を与えています。

ship1.Angle + MathHelper.PiOver2またはship1.Angle - MathHelper.PiOver2

関連する問題