c++ - 使用SDL2进行软件开发

标签 c++ cross-platform sdl-2 software-design

今天早上我在网上冲浪时,偶然读到了关于 C++ 的 SDL2 游戏编​​程库。看看 SDL2 的工作原理,我想知道是否可以使用像 SDL2 这样的游戏编程库来开发实际的软件应用程序。为什么或为什么不对我理解你为什么这样做的原因非常有帮助。谢谢!!

最佳答案

Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.

我强调低水平

  • 图形:您唯一可以做的就是绘制像素或图像/纹理。您将无法使用菜单、按钮等。除非您对它们进行编码,否则可能会有点麻烦。

  • 鼠标:您只能访问事件,这意味着您需要检查自己点击了哪个区域,并监控自己是否仍然按下按钮

  • 键盘:同样的事情,你只知道何时按下/释放触摸。例如,文本输入可以是彩色的。

这样做的结果是,使用它的应用程序是那些不关心菜单、按钮等并且需要对键盘/鼠标事件进行低级访问的应用程序:视频游戏是它。

It is used by video playback software, emulators, and popular games.

因此,如果您所说的软件开发是指像记事本一样复杂的软件开发,那么请忘记 SDL! Qt、WxWidgets、GTK 等都是你的 friend 。

反例可能是科学研究项目,您通常不太关心人体工程学,有时更喜欢低级访问。

关于c++ - 使用SDL2进行软件开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31813405/

相关文章:

java - 更改 shared_ptr 的 getCPtr() 可见性

c++ - 奇怪的计算结果

linux - 交叉编译时无法通过 ./configure 访问 Buildroot 暂存库。测试编译失败。

c++ - 如何使用 QXmlStreamReader 来解析包含对其他 XML 文件的引用的 XML 文件?

c++ - 是否可以在 cpp 中检查负 0?

python - 有没有一种标准的方法来获取 python 中的用户配置目录

ASP.NET/Android/iOS - 跨平台数据交换 - JSON 还是其他?

c++ - C++ 宏可以在 C++ 文件末尾添加一些代码吗?

c - 如何在 SDL_Renderer 内移动单个元素?

c++ - SDL_LockTexture()/AddressSanitizer/双免