【问题标题】:Using SDL2 for software development使用 SDL2 进行软件开发
【发布时间】:2015-08-05 00:12:22
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    Simple DirectMedia Layer 是一个跨平台开发库,旨在通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、操纵杆和图形硬件的低级访问。

    我强调低级

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

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

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

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

    它被视频播放软件、模拟器和流行游戏使用。

    所以,如果您所说的软件开发是指像记事本一样复杂的东西,那就别管 SDL! Qt、WxWidgets、GTK等都是你的朋友。

    一个反例可能是一个科学研究计划,您通常不太关心人体工程学,有时更喜欢低级别的访问。

    【讨论】:

    • 很好,我想你!我还发现,SDL2 非常适合触摸事件处理,这对于其他实际的 gui 库来说可能会很痛苦。我希望 GTK+ 能尽快为移动设备提供更好的支持,我听说他们正在努力。
    【解决方案2】:

    首先,SDL2 不是一个“游戏编程库”,它是一个多媒体库。但它当然可以用于游戏开发。

    我想知道是否可以使用 SDL2 等 [多媒体库] 开发实际的软件应用程序。

    是的。

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

    【讨论】:

      最近更新 更多