【问题标题】:How do i set a fixed window size in monogame?如何在monogame中设置固定的窗口大小?
【发布时间】:2023-03-11 20:40:02
【问题描述】:

我正在制作一个简单的游戏以作为最终项目展示。它将在窗口中显示一个 .bmp 框架,我无意在游戏运行时调整窗口大小,所以我想修复窗口的大小。问题是,当我运行通过在 Visual Studio 2012 中选择 monogame 游戏创建的项目时,它以全屏模式启动。我试图用这段代码修复它:

_graphics.IsFullScreen = false;
_graphics.PreferredBackBufferWidth = 640;
_graphics.PreferredBackBufferHeight = 480;
_graphics.Applychanges();

我已将它放在主游戏类的构造函数和初始化函数中,但它什么也没做。我正在使用monogame 3.0。

【问题讨论】:

  • 这似乎是 MonoGame 中的一个错误。我相当确定您发布的代码应该可以工作。我发现了这个讨论github.com/mono/MonoGame/issues/1762,它看起来像一个肮脏的解决方法,你可以在上面的代码之前调用 _graphics.CreateDevice()。
  • 感谢您的帮助,我仍然无法设置固定窗口,但现在全屏模式的分辨率已更改,这是在 Visual Studio 2012 中。我在 Visual Studio 2010 中测试了相同的代码,它运行良好我是monogame的新手,也是编程方面的大菜鸟,所以我不知道到底发生了什么,这次我将坚持使用VS 2010。

标签: c# windows-8 fullscreen monogame


【解决方案1】:

尝试将其放入 Initialize 方法而不是构造函数中。

应该做的伎俩:

protected override void Initialize()
{
    _graphics.IsFullScreen = false;
    _graphics.PreferredBackBufferWidth = 640;
    _graphics.PreferredBackBufferHeight = 480;
    _graphics.Applychanges();

    base.Initialize();
}

【讨论】:

    【解决方案2】:

    调整窗口大小的最佳方法是使用“GraphicsDeviceManager”。 像这样设置图形

    private GraphicsDeviceManager _graphics;
    

    然后将你的代码写入initialize方法中(注意大写字母):

     protected override void Initialize()
        {
            _graphics.PreferredBackBufferWidth = 640;
            _graphics.PreferredBackBufferHeight = 480;
            _graphics.ApplyChanges();
    
            base.Initialize();
        }
    

    【讨论】:

      猜你喜欢
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 2015-03-31
      • 1970-01-01
      • 2019-03-02
      • 1970-01-01
      • 2021-11-09
      相关资源
      最近更新 更多