使用 SDL2 进行软件开发

Using SDL2 for software development

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

首先,SDL2 不是 "game programming library",它是一个多媒体库。不过当然可以用于游戏开发。

I wonder if actual software applications can be developed with [multimedia libraries] like SDL2.

是的。

但是,如果您使用的是 C++,则需要使用 SFML 而不是 SDL,因为 SDL 只有一个 C 接口,与现代 C++ 不能很好地结合在一起。

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等都是你的朋友

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