XNA-全局缩放

XNA-全局缩放,xna,zooming,scale,Xna,Zooming,Scale,我正在尝试允许使用鼠标滚动缩放,并将缩放值传递到我的每个可绘制对象中。每个可绘制对象都采用缩放值并使用SpriteBatch.Draw方法的缩放参数。但缩放每个单独的项目相对于所有其他对象不起作用。是否有某种画布可以绘制所有内容,然后进行缩放,使所有内容都可以适当缩放?在相机中,您必须重新创建视图,将视野更改为较小的值: Matrix.CreatePerspectiveFieldOfView( MathHelper.PiOver4, // chang

我正在尝试允许使用鼠标滚动缩放,并将缩放值传递到我的每个可绘制对象中。每个可绘制对象都采用缩放值并使用SpriteBatch.Draw方法的缩放参数。但缩放每个单独的项目相对于所有其他对象不起作用。是否有某种画布可以绘制所有内容,然后进行缩放,使所有内容都可以适当缩放?

在相机中,您必须重新创建视图,将视野更改为较小的值:

Matrix.CreatePerspectiveFieldOfView(
    MathHelper.PiOver4,                    // change this to, say 20°
    aspectRatio,
    0.0001f,
    1000.0f,
    out projection
);

现在此更改是全局性的,因为在摄影机的效果中使用摄影机的投影,因此必须重新创建视图,将视野更改为较小的值:

Matrix.CreatePerspectiveFieldOfView(
    MathHelper.PiOver4,                    // change this to, say 20°
    aspectRatio,
    0.0001f,
    1000.0f,
    out projection
);
现在,此更改是全局性的,因为您在效果中使用摄影机的投影

使用采用
矩阵
参数的方法。传递矩阵:

您应该将此参数用于精灵的所有“全局”变换。因此,您可以组合(乘以)平移和缩放矩阵来移动和缩放2D场景。

使用采用
矩阵
参数的方法。传递矩阵:


您应该将此参数用于精灵的所有“全局”变换。因此,您可以组合(乘以)平移和缩放矩阵来移动和缩放2D场景。

问题在于2D图形。你的答案是3D。问题是2D图形。你的答案是3D。