Как перенести 3D модель на XNA? - PullRequest
0 голосов
/ 18 сентября 2011

Я хочу контролировать свою 3D-модель, перемещать ее в любом направлении, но я не знаю, как это сделать. У кого-нибудь есть идеи?

1 Ответ

1 голос
/ 18 сентября 2011

Вам нужно только обеспечить эффект трансформации мира модели.

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

Вы также можете основывать свое движение в векторном направлении вперед или сглаживать изменение угла, интерполируя окончательное движение вперед с текущим...

...