屏幕分辨率不断重置为默认值

时间:2015-01-17 04:12:30

标签: c# linux monogame

我现在正试图通过制作一些简单旧游戏的克隆来学习Monogame。我尝试通过此处描述的方法设置屏幕分辨率:

How do I set the window / screen size in xna?

首先,调用Console.WriteLine()报告分辨率已成功更改,但是当我运行该程序时,我得到默认的800x480。我在Console.WriteLine()方法中添加了对update()的另一个调用,以查看解决方案的内容,并报告了800x480。

我该怎么做才能解决这个问题?我是否需要每次都在update()方法中设置分辨率?

1 个答案:

答案 0 :(得分:1)

在游戏构造函数中添加初始分辨率。如果您输入Initalize,系统首先将分辨率更改为默认值,然后再输入您的。使用此代码,系统将只更改一次分辨率。现在没有代码,但它应该是这样的:

public Game1()
{
     graphics = new GraphicsDeviceManager(this);
     graphics.PreferredBackBufferHeight = 600;
     graphics.PreferredBackBufferWidth = 800;
     // graphics.ApplyChanges(); <-- not needed
}

然后如果你想稍后改变,请输入更新功能。

protected override void Update(GameTime gameTime)
{
    if(changeresolution){
         graphics.PreferredBackBufferHeight = 1600;
         graphics.PreferredBackBufferWidth = 1800;
         graphics.ApplyChanges();
         changeresolution = false;
    }
}