gpt4 book ai didi

c++ - 为 X11 和 Win32 的简单游戏组织代码的最佳方式是什么

转载 作者:行者123 更新时间:2023-11-28 03:42:04 25 4
gpt4 key购买 nike

我正在为一项任务实现一个简单的游戏,理想情况下它可以在 Unix(使用 X11 的图形上下文)和 Windows(使用 Window 的 GDI)上运行,同时使用它们的窗口管理器。构建代码的最佳方式是什么,以便我可以简单地插入正确的 C++ 类以使其在每个操作系统上运行?

更具体地说,如何将图形和窗口组件从实际游戏组件中完全分离出来? (例如,使用观察者模式,以便游戏组件可以在特定于平台的窗口组件上观察用户输入,创建一个用于加载/显示 Sprite 的通用接口(interface),创建另一个用于重绘的通用接口(interface)等)。谁应该负责将每个对象的图形/设备上下文复制并粘贴到主屏幕的 gc/dc?哪个组件应该包含主要事件循环/窗口回调(如果它是主要组件,那么每个平台我需要两个版本的主要组件吗?)另外,我如何使每个对象(例如 block ,字符等)保持平台特定数据类型(gc 用于 X11 和 DC 用于 GDI)?

两个基本要求,我只能用X11和GDI,不能多线程。

最佳答案

游戏很少在本质上依赖于平台。可以使用 GLUT 制作简单的游戏,使用#defines 可以很容易地维护两个版本的代码。回调由 GLUT 处理。

通过这种方式,GLUT 将使您能够为 Windows 和 Linux 编写几乎相同的代码。 (因为制作上下文等问题已经由 GLUT 处理了)。

除非您的项目是明确地重写 GLUT,否则我建议您坚持下去并继续编写您的游戏。

关于c++ - 为 X11 和 Win32 的简单游戏组织代码的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860167/

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