gpt4 book ai didi

c++ - 全屏形式和视频游戏有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 11:52:40 26 4
gpt4 key购买 nike

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

如果我运行像英雄联盟这样的视频游戏,屏幕会出现故障并且游戏会全屏显示。如果您按 Windows 键,什么也不会发生。你不能在游戏之上拥有任何东西,如果它在自己的环境中就好了。

我并不是要寻求完整的答案或实现它的代码。只是我很好奇游戏设计师使用了哪些不同的技术。

最佳答案

这两种技术本质上都是全屏,但有一个细微差别:

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

  • 您自己创建的全屏窗口是一个合作全屏(通常称为无边界窗口),它仍然允许其他程序覆盖您的窗口。分辨率、刷新率等内容仍由叠加窗口系统处理。

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

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

关于c++ - 全屏形式和视频游戏有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26505788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com