1
私は車のドライブを上向きの矢印を押すと、私は角度を変更する、左または右の矢印キーを押すと、私は3D車のモデルを移動したい。XNAで3Dオブジェクトを移動する方法は?
これは、更新メソッドのコードです:
float dirX = (float)Math.Sin(angle);
float dirY = (float)Math.Cos(angle);
if (Keyboard.GetState().IsKeyDown(Keys.Up))
{
position += new Vector3(-dirX, dirY, 0);
if (Keyboard.GetState().IsKeyDown(Keys.Left))
{
angle += 0.015f;
}
if (Keyboard.GetState().IsKeyDown(Keys.Right))
{
angle -= 0.015f;
}
}
は、これは演算部であるが、明らかに私はまた、画面上に車を移動する必要があります。 私は車を前進させたい、上がらないようにしたいので、X軸で90度回転させるべきだと思っていました。また、左または右のキーを押すと車を回転させたいと思っていました。
私はこのコードを書いた:
world = Matrix.CreateTranslation(position) * Matrix.CreateRotationY(angle) * Matrix.CreateFromAxisAngle(Vector3.UnitX, MathHelper.ToRadians(-90));
このコードは動作していない、誰もが、私はそれを移動することができますどのように私に言うことができますか?
「このコードは機能していません」より具体的になりますか?何が間違っているのでしょうか? – ChrisF
あなたは実際に車のマトリックスに何かをしていますか? – kevintodisco
ChrisF:私は上を押して左に、車は前方にドライブするが、それ自体の周りを回転する。 ktodisco:車の行列は世界 –