全屏形式和电子游戏有什么区别

Whats the difference between a full screen form and a video game?

本文关键字:什么 区别 电子游戏      更新时间:2023-10-16

如果我在visualstudio c++上创建一个表单,并使该表单与屏幕一样大,并覆盖所有内容,我可以创建一个全屏的表单。如果我按下windows键,启动菜单就会出现,我可以在我的上面运行任何其他程序。

如果我运行一款像《英雄联盟》这样的电子游戏,屏幕会出现故障,游戏会全屏播放。按windows键不会发生任何事情。你不可能在游戏上有任何东西,就像它在自己的环境中一样。

我并不是在寻找一个完整的答案或代码。只是我很想知道游戏设计师使用了什么不同的技术。

这两种技术本质上都是全屏,但有一个小区别:

  • 大多数游戏使用的"真实"全屏模式被称为独占全屏,它授予游戏(或程序)对图形输出的独占控制权,因此它能够控制分辨率、刷新率、垂直同步等。

  • 您自己创建的全屏窗口是协作全屏(通常称为无边界窗口),它仍然允许其他程序与您的窗口重叠。诸如分辨率、刷新率等问题仍然由覆盖窗口系统来处理。

这两种技术在许多现代游戏中都可用,如《英雄联盟》。

但是,您的实际Windows密钥被阻止是不同的。实际的全屏模式对此没有任何影响。相反,程序必须"吃掉"窗口系统发送的按键事件。如果它被传递,那么它仍然由系统处理(程序的工作方式)。如果它被吃掉了(即没有归还),那么你会得到你在英雄联盟中看到的行为。