【发布时间】:2015-06-15 16:56:07
【问题描述】:
我正在用 C# 和 XNA 4.0 制作游戏。在某些关卡中,我需要一个相机矩阵来使关卡看起来向左/向右滚动。此外,当设置用于更改窗口大小时,我还需要一个缩放矩阵来缩放图形。我的两个矩阵都是函数式的,但我目前在 draw 方法中调用它们,如下所示:
if (scrollingLevel)
{
//Use the camera matrix to make the stage scroll
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, null, null, camera.transform);
}
else
{
//Use the scaling matrix to scale the graphics
spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, transform);
}
如果是滚动级别,我想要同时应用两个矩阵(根据窗口大小缩放图形,然后使用相机矩阵使级别滚动)。但是,简单地将矩阵相加并相乘并不能产生准确的结果(相加会阻止图形缩放到它们应有的确切数量,相乘会使相机滚动不准确)。如何同时应用这两个矩阵?
【问题讨论】: