2014-10-18 74 views
2

我正在使用XNA 4.0制作Windows游戏。我有一个快速的小介绍屏幕,显示我们的工作室标志并播放声音。它持续1.5秒,在窗口模式下看起来和按需要工作。延迟开始XNA游戏切换到全屏搞乱介绍屏幕

我们希望全屏运行游戏。因此,在GraphicsDeviceManager实例化之后,我添加的所有内容都是“graphics.IsFullScreen = true”,并且我们设置了首选的后缓冲区维度。当游戏开始时,视频卡只会像我的显示器那样产生1秒或2秒的切换分辨率等问题 - 这是视频卡,设备驱动程序和我的显示器之间所有习惯性和可理解的延迟, XNA正在运行游戏循环,而这一切都是胡说八道。

这意味着我的介绍开始,运行并在系统开始实际显示我正在绘制的内容时结束,然后介绍结束。我真正喜欢的是一种方法来检测视频卡何时实际呈现,然后开始绘制和播放声音并计时,假设播放器可以看到它们。在网上搜索,我已经看到了一个“graphics.EnsureDevice()”调用的引用,这个调用似乎已经被弃用,并且在XNA 4.0中不再可用。

回答

0

我想这是一种肮脏的,但你可以火​​了一个线程,不断检查,看看是否device参数IsFullscreen设置为true主动图形设备,在你的GraphicsDeviceManager.IsFullscreen属性设置为true。

一旦设置好了,你就会开始你的游戏循环。

你也可以用一种只有在你将GraphicsDeviceManager.IsFullscreen设置为true时才会触发线程的方式来编写它。这样它将支持这两种模式。