我正在创建游戏引擎和测试游戏,我目前正在研究相机(使用Matrix变换)。但是,我遇到了最棘手的问题。我有一个名为CameraPosition(Vector2)的变量,用于设置摄像机的位置。通过做类似的事情来移动相机时,相机会移动得很好
CameraPosition += new Vector2(0, 4);
(相机将向上移动,所有物体将向下移动)。但是,当我这样做时:
CameraPosition = ship.Position;
没有任何反应:即使船只位置发生变化,相机也会停留在完全相同的位置。我已经检查了,矩阵也在变化,但它并没有影响绘图。
PS:我用来计算矩阵的代码是这样的:
CameraMatrix = Matrix.CreateTranslation(new Vector3(CameraPosition, 0));
我正在使用的代码是:
spriteBatch.Begin(SpriteSortMode.Immediate, null, null, null, null, null, CameraMatrix);
//draw stuff here...
spriteBatch.End();
如果有人对正在发生/需要查看更多代码有什么想法,请随时询问/告诉!
编辑:旋转和缩放/缩放工作正常:这只是翻译的混乱。