XNA 禁用自动适应屏幕

XNA Disable Auto Fit to Screen

我正在使用 XNA 4.0 框架创建一个将投影到控制室的商业智能屏幕。屏幕本身的设计适合串联两台 1920 * 1080 投影仪。

目前我定义的屏幕分辨率如下:

    graphics.PreferredBackBufferWidth = 3840;
    graphics.PreferredBackBufferHeight = 1080;

但是,如果我 运行 解决方案,XNA 会自动 'squashes' 二维图形,以便整个屏幕适合我的 1920 * 1080 主屏幕。如何在 XNA 中禁用此 're-sizing' 功能?我想要实现的是一个大屏幕,我可以在两个 1920 * 1080 显示器上显示。不是适合一台显示器的压扁屏幕。

请注意,我的 XNA 知识非常有限。我正在使用 SpriteFonts 和 Texture2D 创建图形对象

如果如果您在游戏 class 构造函数上设置这些值并且已配置屏幕以在它们之间扩展内容,则您的解决方案应该有效。

另一种不太推荐的方法是在 InitializeLoadContent 方法上应用更改。

为此,只需在设置尺寸后添加以下行:

this.graphics.ApplyChanges();

所以你的整个事情看起来像这样:

protected virtual void Initialize()
{
    this.graphics.PreferredBackBufferWidth = 1024;
    this.graphics.PreferredBackBufferHeight = 600;
    this.graphics.ApplyChanges();
}

如果您不想使用 ApplyChanges 方法,可以在 class 构造函数上设置值 而无需 调用此方法。

此外,请务必检查 graphics.IsFullScreen property 是否设置为 true。