【发布时间】:2013-09-06 17:26:14
【问题描述】:
我对 XNA 有点陌生,但我会尽力解释我的问题。
我想通过设置graphics.PreferredBackBufferHeight 和graphics.PreferredBackBufferWidth 来更改游戏中的分辨率。
通过将graphics.PreferredBackBufferWidth 设置为1920,并将graphics.PreferredBackBufferHeight 设置为1080,游戏初始化正常。
但是,通过按下按钮,我希望将 graphics.PreferredBackBufferWidth 设置为 1280,并将 graphics.PreferredBackBufferHeight 设置为 720。 (两种分辨率都是16:9)
但是,正如您所料,在 Initialize 方法中初始化 graphics.PreferredBackBufferWidth 和 graphics.PreferredBackBufferHeight 可以正常工作。
但是通过更改这两个值,然后是graphics.ApplyChanges(),OUTSIDE初始化,屏幕要么以奇怪的方式拉伸,要么根本无法正常显示。
- 如何在 Initialize 之外更改 BackBuffer 宽度/高度?
- 如果我在 Initialize 中设置了这些,为什么会不一样?
- 我必须再次调用 Initialize 吗?
【问题讨论】:
-
你能详细说明它的作用吗?甚至是一些代码,说明您在何处以及如何进行更改。一两个屏幕截图也不错。它可能不是改变本身,而是你如何绘制你的对象
-
听起来您确实在某处遗漏了一步,或者可能遗漏了
ApplyChanges。如果可以,请发布一些代码(我知道很难精简 xna 代码,但请不要发布 all 您的代码)。 -
不幸的是,由于我使用了许多枚举、类等,我的使用代码很难理解。在 Initialize() 中,我基本上设置了 graphics.IsFullscreen = true。稍后,在更新事件中,它将设置
-
对不起 - 我对 StackExchange 有点陌生,如果我按 Enter 键,请道歉,换行,而不是发表评论。在 Update() 中,它将重新设置 PreferredBackBuffer 的宽度和高度。其次是 graphics.ApplyChanges()。
-
您知道您可以随时编辑您的 cmets/帖子。
标签: c# graphics xna resolution