Vb.net XNA模型的翻译很奇怪

Vb.net XNA模型的翻译很奇怪,vb.net,3d,xna,camera,Vb.net,3d,Xna,Camera,当使用Matrix.CreateTranslation(x,y,z)时,我得到了奇怪的结果。我使用固定值进行了测试,每次测试一个变量,并确定了以下内容: 更改X坐标时,模型将从左上角移动到右下角 更改Y坐标时,模型会按其应有的方式上下移动 我不打算改变Z坐标,但由于我的程序的性质,我不能确切地知道它是做什么的 我画了我的模型。轮换很好。我正在按照正确的顺序进行翻译(至少我认为是这样):scale*rotation*translation 我认为问题在于我的相机设置,但我不知道到底是什么问题。

当使用
Matrix.CreateTranslation(x,y,z)
时,我得到了奇怪的结果。我使用固定值进行了测试,每次测试一个变量,并确定了以下内容:

  • 更改X坐标时,模型将从左上角移动到右下角

  • 更改Y坐标时,模型会按其应有的方式上下移动

  • 我不打算改变Z坐标,但由于我的程序的性质,我不能确切地知道它是做什么的

我画了我的模型。轮换很好。我正在按照正确的顺序进行翻译(至少我认为是这样):
scale*rotation*translation

我认为问题在于我的相机设置,但我不知道到底是什么问题。我正在尝试创建一个自上而下风格的RTS相机

以下是我的相机设置:

campos = new Vector3(5000.0F, 5000.0F, 5000.0F)
effect.View = Matrix.CreateLookAt(campos, Vector3.Down, Vector3.Up)
我可以根据需要提供更多信息。

的第二个参数不是相机面对的方向,而是目标点

如果您试图使相机向下看,请使用

Matrix.CreateLookAt(campos, campos + Vector3.Down, Vector3.Forward)
这将告诉相机始终注视相机下方一个单位的点


您的翻译可能无法正常工作,因为相机没有看到您希望它看到的点,因此看起来模型是对角移动的。

好的,以前我尝试此方法时,我的模型根本不会显示。我已经解决了这个问题,但翻译问题仍然存在。我每打一个勾,在X位置加上5,它就会移动到屏幕的右下角。