这个项目能做什么
cute_headers 是一组跨平台、单文件的 C/C++ 库,旨在直接放入项目中使用。每个头文件都是自包含的,没有外部依赖,其明确重点是游戏开发。
该仓库记录了以下头文件:
- cute_c2 (1.10):对图元进行 2D 碰撞检测,提供布尔结果和/或流形生成、形状投射/扫描测试以及射线投射。
- cute_net (1.03):游戏网络库,在 UDP 之上提供可选可靠性层,并内置安全方案。
- cute_tiled (1.07):加载导出为 JSON 格式的 Tiled 地图。
- cute_aseprite (1.04):将 .ase/.aseprite 文件解析为紧凑的结构集合。
- cute_sound (3.0):加载、播放和循环(带插件)以及平移 WAV 和 OGG 音频(OGG 通过 stb_vorbis 包装器),支持单声道或立体声,带有自定义混音器、音乐和交叉淡入淡出支持。
- cute_png (1.06):加载和保存 PNG,编译纹理图集,符合 DEFLATE 的解压缩器,以及 LZ77 压缩器。
- cute_spritebatch (1.08):运行时 2D 精灵批处理器,在内存中动态构建图集,用于高性能渲染,无需预编译的磁盘图集。
- cute_sync (1.02):同步原语,包括读写锁和线程池/任务系统。
- cute_tls (1.02):通过 TCP 创建到网站的 TLS 连接,适用于 HTTPS 请求(C/C++/Obj-C)。
使用模型:头文件直接包含到源代码中。每个头文件定义一个 LIBNAME_IMPLEMENTATION 符号;在恰好一个翻译单元中定义它并包含该头文件会生成实现,而其他文件则正常包含头文件。README 认为这种方法简化了分发(只需复制一个文件)并避免了构建脚本更改,而且构造良好的单文件头文件会谨慎使用模板,并将实现放在一个翻译单元中以限制编译时间成本。
一些头文件附带示例代码和演示,位于相应的 examples 或 tests 文件夹中,README 建议通过这些学习用法。许可在每个文件中声明,可在公共领域和 zlib 之间选择。已弃用的头文件已移至单独的 cute_headers_deprecated 仓库。作者还提到了 Cute Framework,这是一个主要构建在这些低级头文件之上的更高级 2D 游戏创建框架,以及 STB、RJM 和 Mattias Gustavsson 的库作为头文件库的参考示例。社区联系通过 Discord 服务器和 Twitter (@randypgaul) 提供。
评论
0 评分人数达到10人后显示
登录后参与讨论。