2
XNA 2d相机滚动-为什么使用矩阵变换?
我正在制作一个测试游戏,希望关卡不断滚动。为了创建这种效果,我建立了一个摄像机类,该摄像机类仅存储vector2位置和枚举方向。它还包含一个公共的“移动”方法,该方法仅以固定的速率更改头寸。然后,当我在绘制时遍历我的瓷砖阵列时使用此位置。这一切都很好。 但是,有人告诉我应该使用Transform矩阵来移动相机,并且在启动spritebatch时应该提供此信息。我有点困惑a。)这是如何工作的?好像我只在spritebatch开始时给它一样,它怎么知道要保持位置变化?b。)为什么在遍历图块时仍然确定需要照相机的位置? 目前,我无法正常工作,但这并不奇怪,因为我还不完全了解它的工作原理。目前,在我的尝试(遵循的代码)中,正在绘制的图块发生了变化,这意味着相机的位置正在更改,但是视口的位置保持不变(即,在相机的原点)。对于要如何使用它,我将不胜感激。 相机: class Camera { // The position of the camera. public Vector2 Position { get { return mCameraPosition; } set { mCameraPosition = value; } } Vector2 mCameraPosition; public Vector2 Origin { get; set; } public float Zoom { get; set; } public float Rotation { get; …