C# 更改XNA中的BackBuffer高度/宽度-不需要的结果
我对XNA有点陌生,但我会尽力解释我的问题 我想通过设置C# 更改XNA中的BackBuffer高度/宽度-不需要的结果,c#,graphics,xna,resolution,C#,Graphics,Xna,Resolution,我对XNA有点陌生,但我会尽力解释我的问题 我想通过设置graphics.PreferredBackBufferHeight和graphics.PreferredBackBufferWidth来更改游戏中的分辨率 通过从图形开始。PreferredBackBufferWidth设置为1920,以及图形。PreferredBackBufferHeight设置为1080,游戏可以很好地初始化 但是,按一下按钮,我想要图形。PreferredBackBufferWidth设置为1280,而图形。Pre
graphics.PreferredBackBufferHeight
和graphics.PreferredBackBufferWidth
来更改游戏中的分辨率
通过从图形开始。PreferredBackBufferWidth
设置为1920,以及图形。PreferredBackBufferHeight
设置为1080,游戏可以很好地初始化
但是,按一下按钮,我想要图形。PreferredBackBufferWidth
设置为1280,而图形。PreferredBackBufferHeight
设置为720。(两种分辨率均为16:9)
但是,初始化方法中的初始化graphics.PreferredBackBufferWidth
和graphics.PreferredBackBufferHeight
工作正常,正如您所期望的那样。
但是通过更改这两个值,然后是graphics.ApplyChanges()
,外部初始化,屏幕要么以奇怪的方式拉伸,要么根本无法正确显示
- 如何更改BackBuffer的宽度/高度
- 如果我在初始化中设置了这些,为什么不一样呢
- 我必须再次调用初始化吗
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
渲染窗口似乎是在其宽度上拉伸的,而不是在其高度上拉伸的,这解释了黑条的原因。在这一点上,我将不得不询问一个代码示例。能够运行与您相同的代码将允许我直观地看到问题并调试问题。如果可能,请用代码更新您的问题。