我为复古风格的2D游戏引擎制定了大部分逻辑,但我不知道如何显示其输出。
基本上,它生成一个低分辨率位图,其逻辑类似于大多数系统(使用精灵,调色板等)。由于我没有学习 DirectX 或类似的东西,我没有 hdea,我应该如何显示它的输出并定期更新它(与 VSync 绑定?我正在使用 D,但如果你知道 C 或 C++那也没关系。
编辑:好的,我正在重写它以与 SDL 一起使用。我应该如何制作输出格式?使用数据创建数组?
查看 SDL2。它是跨平台游戏的事实标准(目前主要由Valve开发)。如果您以后想使用 OpenGL 或 D3D,它也可以用作基础。请注意,OpenGL在D社区中更受欢迎,并且得到了很好的支持。
要将位图实际放在屏幕上,您只需使用 SDL 或 OpenGL/D3D 将其复制到屏幕上,将其复制到纹理中并在 2 个三角形上显示该纹理。但我认为普通的 SDL 在您的情况下应该足够了。
这似乎是你需要的(不过,您可能需要缩放位图以匹配窗口/屏幕大小)
D 有 Derelict (@github) (如何与 DUB 一起使用) 项目,其中包括与 SDL、OpenGL、各种 SDL 扩展(SDL-TTF、SDL-Mixer、SDL-Image 等 - 包含在 SDL 绑定中)、FreeType(字体)、Assimp (3D 模型格式)等的绑定。绑定被设计为与原始 C/C++ 库相同,这可能不如纯 D 样式包装器好,但这意味着仍然可以使用这些库的 C/C++ 教程。
我还做了一个小教程,用SDL/Derelict/GFM制作游戏(GFM是一个更D风格的库),但由于GFM现在是一个正在进行的工作,教程可能已经有点过时了。另一方面,遗弃已经稳定和维护了 10 多年。
- SDL2 参考
- SDL2 教程(适用于C++,但由于 Derelict 的设计,可与 D 一起使用):这里和这里
编辑:添加了更多链接EDIT2:关于实际显示输出的注意事项
只需搜索像 SDL、SFML 或 Allegro 这样的库,我从未尝试过 D,但曾经听说有人将 D 与 SDL 一起使用。
编辑:在D中检查此开源游戏