如果我在visual studio c ++上创建一个表单,并使表单与屏幕一样大,并且覆盖所有内容,我可以创建一个全屏的表单。如果我按下Windows键,启动菜单就会出现,我可以在我的上面运行任何其他程序。
如果我经营像我们的传说联盟的视频游戏,屏幕故障,游戏全屏显示。按Windows键不会发生任何事情。你不可能在游戏中拥有任何东西,而且如果它在自己的环境中则是如此。
这不是我寻求完整的答案或代码来做到这一点。我只是想知道游戏设计师使用的不同技术。
答案 0 :(得分:2)
这两种技术基本上都是全屏,但有一个小的区别:
"真实"大多数游戏使用的全屏模式称为独占全屏,它允许游戏(或一般程序)对图形输出进行独占控制,因此它可以控制诸如分辨率,刷新等内容率,垂直同步等
您自己创建的全屏窗口是协作全屏(通常称为无边框窗口),它仍然允许其他程序与您的窗口重叠。分辨率,刷新率等等仍然由重叠的窗口系统处理。
这两种技术都可用于许多现代游戏,例如英雄联盟。
然而,您的实际Windows密钥被阻止是不同的。实际的全屏模式对此没有任何影响。相反,该计划必须"吃"窗口系统发送的按键事件。如果它被传递,那么它仍然由系统处理(程序的工作方式)。如果它被吃掉(即没有被退回),那么你将获得你为英雄联盟看到的行为。