0

3D モデルを制御し、あらゆる方向に動かしたいのですが、これを行う方法がわかりません。誰でも何か考えがありますか?

4

1 に答える 1

1

モデルのワールド トランスフォームの効果を提供するだけで済みます。

 Matrix World = Matrix.CreateWorld(position, forward, up);

update メソッドでは、位置を変更できます。

  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;
}

また、動きを前方ベクトルに基づいたり、最終的な前方を現在で補間して角度の変化を滑らかにしたりすることもできます...

于 2011-09-18T11:19:36.200 に答える