Matrix XNA 2D相机不移动

Matrix XNA 2D相机不移动,matrix,xna,camera,Matrix,Xna,Camera,我正在创建一个游戏引擎和一个测试游戏,目前我正在使用矩阵变换制作相机。然而,我遇到了一个最奇怪的问题。我有一个名为CameraPosition Vector2的变量,用于设置相机的位置。当我通过执行以下操作移动相机时,相机会很好地移动 CameraPosition+=新矢量20,4; 摄影机将向上移动,所有对象将显示为向下移动。但是,当我这样做时: CameraPosition=船舶位置; 什么也没发生:即使船的位置在改变,摄像机仍保持在完全相同的位置。我已经检查过了,矩阵也在变化,但它不会影响

我正在创建一个游戏引擎和一个测试游戏,目前我正在使用矩阵变换制作相机。然而,我遇到了一个最奇怪的问题。我有一个名为CameraPosition Vector2的变量,用于设置相机的位置。当我通过执行以下操作移动相机时,相机会很好地移动 CameraPosition+=新矢量20,4; 摄影机将向上移动,所有对象将显示为向下移动。但是,当我这样做时: CameraPosition=船舶位置; 什么也没发生:即使船的位置在改变,摄像机仍保持在完全相同的位置。我已经检查过了,矩阵也在变化,但它不会影响绘图

PS:我用来计算矩阵的代码是: CameraMatrix=Matrix.CreateTransationNew Vector3CameraPosition,0

我用来画的代码是: spriteBatch.BeginSpriteSortMode.Immediate,null,null,null,null,null,CameraMatrix; //在这里画东西。。。 spriteBatch.结束

如果任何人对正在发生的事情有任何想法/需要了解更多的代码,请随时询问/告知


编辑:旋转和缩放/缩放工作正常:只是平移搞乱了。

如果矩阵和ship.Position都在更改,则表明您的问题是在绘图过程中没有正确引用CameraPosition。但是,您说过使用+=操作添加到CameraPosition Vector2实际上会移动对象。除非你遇到了一个bug,否则听起来你对你的问题描述得不够好!不过,问题是@Joe,摄影机位置的唯一用途是制作矩阵。另外,我忘了说相机位置也在改变。试着在矩阵分配中使用ship.Position,这会产生你想要的结果吗?我不是说这是一个解决方案,这只是一种尝试找出问题所在的方法!没有:完全相同的结果。不幸的是,我以前没有在相机上使用过这种方法!当我使用相机时,我直接使用它的X和Y坐标来确定绘图坐标。i、 e Vector2 drawPos=对象位置-摄像机位置;