我想控制我的 3D 模型,向各个方向移动它,但我不知道怎么做。有人知道吗?
问问题
2027 次
1 回答
1
您只需提供模型的世界变换效果。
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;
}
您还可以将运动基于前向矢量,或平滑角度变化,将最终前向与当前进行插值,...
于 2011-09-18T11:19:36.200 回答