Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改XNA中的BackBuffer高度/宽度-不需要的结果_C#_Graphics_Xna_Resolution - Fatal编程技术网

C# 更改XNA中的BackBuffer高度/宽度-不需要的结果

C# 更改XNA中的BackBuffer高度/宽度-不需要的结果,c#,graphics,xna,resolution,C#,Graphics,Xna,Resolution,我对XNA有点陌生,但我会尽力解释我的问题 我想通过设置graphics.PreferredBackBufferHeight和graphics.PreferredBackBufferWidth来更改游戏中的分辨率 通过从图形开始。PreferredBackBufferWidth设置为1920,以及图形。PreferredBackBufferHeight设置为1080,游戏可以很好地初始化 但是,按一下按钮,我想要图形。PreferredBackBufferWidth设置为1280,而图形。Pre

我对XNA有点陌生,但我会尽力解释我的问题

我想通过设置
graphics.PreferredBackBufferHeight
graphics.PreferredBackBufferWidth
来更改游戏中的分辨率

通过从
图形开始。PreferredBackBufferWidth
设置为1920,以及
图形。PreferredBackBufferHeight
设置为1080,游戏可以很好地初始化

但是,按一下按钮,我想要
图形。PreferredBackBufferWidth
设置为1280,而
图形。PreferredBackBufferHeight
设置为720。(两种分辨率均为16:9)

但是,初始化方法中的初始化
graphics.PreferredBackBufferWidth
graphics.PreferredBackBufferHeight
工作正常,正如您所期望的那样。 但是通过更改这两个值,然后是
graphics.ApplyChanges()
外部初始化,屏幕要么以奇怪的方式拉伸,要么根本无法正确显示

  • 如何更改BackBuffer的宽度/高度
  • 如果我在初始化中设置了这些,为什么不一样呢
  • 我必须再次调用初始化吗

根据与OP在评论部分的对话,问题似乎在于将图形设置为全屏,因为它会拉伸屏幕以处理更小的分辨率。

您能否详细介绍它的具体操作?或者甚至是一些代码,说明您在哪里以及如何进行更改。一两张截图也不错。这可能不是更改本身,而是您绘制对象的方式听起来好像缺少了某个步骤,或者缺少了一个
ApplyChanges
。如果可以,发布一些代码(我知道很难精简xna代码,但请不要发布所有代码)。不幸的是,我的使用代码很难理解,因为我使用了许多枚举、类等。在Initialize()中,我基本上设置了graphics.IsFullscreen=true。稍后,在更新事件中,它会设置问题-我对StackExchange有点陌生,所以如果我按Enter键,请道歉,以生成新行,而不是发布评论。在Update()中,它将重新设置PreferredBackBuffer的宽度和高度。然后是graphics.ApplyChanges()。您知道您可以随时编辑评论/帖子。1920x1080和1280x720的比率都是16:9(乘以1.5)。我得到的是水平黑条,占据了至少50%的屏幕。我需要重新设置全屏布尔值吗?当你不画任何东西时,是否会出现黑条?您是否使用默认的spritebatch.Begin()?实际上,我使用的是标准的spritebatch.Begin/Draw。。为了澄清这一点,当游戏仅处于全屏模式时会出现此问题
graphics.IsFullscreen
渲染窗口似乎是在其宽度上拉伸的,而不是在其高度上拉伸的,这解释了黑条的原因。在这一点上,我将不得不询问一个代码示例。能够运行与您相同的代码将允许我直观地看到问题并调试问题。如果可能,请用代码更新您的问题。