私は少しのLunar Landerクローンを作っています。その作業はかなり大丈夫です。今は着陸装置にパーティクル効果を追加しました。私の船の真ん中にパーティクルエフェクトが作成されます。XNA 2D回転スプライト(回転式着陸装置)
私がしたいことは、パーティクルが作成され、船の排気がスプライト上にあるということです。そして、これは私に困ってしまった。私はそれを計算することができるはずです、私は両方とも回転角度と現在の位置を持っているので、私は64x64スプライト内の任意のピクセルの回転位置を得ることができるはずです。
私はLander.exhaust.XとLander.exhaust.Y値の計算に興味があります。誰も私を正しい方向に向けることができますか?
//これは、私はそれのすべてを必要といけないことを確認イム、コードの一部です:)
Lander.acceleration.X = Lander.acceleration.X *(0.01f * gameTime.ElapsedGameTime.Seconds)。 Lander.acceleration.Y = Lander.acceleration.Y *(0.01f * gameTime.ElapsedGameTime.Seconds);
Lander.velocity.Y = Lander.velocity.Y + (0.05f + Lander.velocity.Y * gameTime.ElapsedGameTime.Seconds);
Lander.oldvelocity.X = Lander.velocity.X;
Lander.oldvelocity.Y = Lander.velocity.Y;
Lander.exhaust.X = (float)Math.Cos(Lander.RotationAngle) * 0.1f + Lander.Position.Y ;
Lander.exhaust.Y = (float)Math.Sin(Lander.RotationAngle) * 0.1f + Lander.Position.X ;
Lander.Position.Y = Lander.velocity.Y + Lander.Position.Y;
Lander.Position.X = Lander.velocity.X + Lander.Position.X;
//if (Lander.Position.Y >= groundlevel + (Lander.mSpriteTexture.Height/2))
if (Lander.Position.Y >= groundlevel)
{
Lander.Position.Y = groundlevel;
Lander.velocity.X = 0f;
Lander.oldvelocity.X = 0f;
}
float circle = MathHelper.Pi * 2;
RotationAngle = RotationAngle % circle;
Lander.RotationAngle = RotationAngle;
RotationAngledegrees = MathHelper.ToDegrees(RotationAngle);
if (keyState.IsKeyDown(Keys.Space))
{
Lander.acceleration.X = (float)Math.Cos(Lander.RotationAngle) * 0.1f + Lander.acceleration.X;
Lander.acceleration.Y = (float)Math.Sin(Lander.RotationAngle) * 0.1f + Lander.acceleration.Y;
Lander.velocity.X = Lander.oldvelocity.X + Lander.acceleration.X;
Lander.velocity.Y = Lander.oldvelocity.Y + Lander.acceleration.Y;
particleEngine.EmitterLocation = new Vector2(Lander.exhaust.X, Lander.exhaust.Y);
-lasse
'particleEngine.EmitterLocation ...'あなたはおそらくparticleEngine.EmitterLocation = Lander.exhaust'は、排気がベクトル2 – annonymously
はい、これはLander.exhaust.X =( – LHK