我在 C++ 中使用 DirectXTK,并且大量使用 sprite 批处理功能。
我正在尝试开发等距渲染引擎。我已经让等距渲染正常工作。连同抵消。但是我遇到了一个主要问题。
我一生都无法弄清楚如何将相机的中心对准世界的(0,0)或任何其他坐标。
在将相机直接生成的变换矩阵注入 SpriteBatch.Begin() 之后
Matrix Camera::getTransformMatrix() {
Matrix Transform = Transform.CreateTranslation(Vector3(World_Pos.x, World_Pos.y, 0));
Matrix Rotation = Rotation.CreateRotationZ(0);
Matrix Scale = Scale.CreateScale(ZoomFactor, ZoomFactor, 1);
return Transform * Rotation * Scale;
}
似乎什么也没有发生。这是相机的世界位置设置为 (0,0),精灵的世界位置设置为 (0,0)。
这是生成的图像。
http://i.imgur.com/Bep7l5a.png
出于调试原因,我关闭了 alpha 混合和精灵偏移。
任何人都可以帮助我吗?另外,如果有人能告诉我如何翻转 y,那也很棒。