0
私は3Dモデルを制御したい、それをあらゆる方向に動かすが、私はこれを行う方法を知らない。誰もが考えている?XNAで3Dモデルを移動するには?
私は3Dモデルを制御したい、それをあらゆる方向に動かすが、私はこれを行う方法を知らない。誰もが考えている?XNAで3Dモデルを移動するには?
あなたは、モデルのワールド変換をエフェクトするだけで済みます。
あなたが位置を変更することができ、あなたの更新方法でMatrix World = Matrix.CreateWorld(position, forward, up);
:
LastPosition = Position;
if (IsKeyDonw(Left) Position -= Vector3.UnitX * Speed * ElapsedTime; ForwardDirty = true;
if (IsKeyDonw(Right) Position += Vector3.UnitX * Speed * ElapsedTime; ForwardDirty = true;
if (IsKeyDonw(Up) Position -= Vector3.UnitZ * Speed * ElapsedTime; ForwardDirty = true;
if (IsKeyDonw(Down) Position += Vector3.UnitZ * Speed * ElapsedTime; ForwardDirty = true;
// the forward is the direction where will point your model.
if (ForwardDirty) {
Forward = Position - LastPosition;
Forward.Normalize();
ForwardDirty = false;
}
また、前方ベクトルであなたの動きをベースに、または現在で、最終的な前進を補間角度変化を滑らかにすることができます...
+1:私は 'ForwardDirty'フラグを設定してボタンのプレスの' if'ステートメントの中で 'Forward Vector3'を調整するだけで気にしません。 –
ハンドル入力キー、モデルのx/y/z位置を変更し、利益を得ます。 – thedaian
左または右に曲がりたい場合、どのように処理する必要がありますか? – beanhorstmann
誰でも私にシンプルなデモゲームを作ったり、船を引いたり(3D)、キーボードを使ってそれを制御したり、矢印を左または右に回して左または右に、矢印を上に移動したり、矢印を下にして後ろに移動したりすることができます。助けて! – beanhorstmann