raylib是一个简单易用的库,用于享受视频游戏编程。
raylib深受Borland BGI图形库和XNA框架的启发,特别适合原型设计、工具开发、图形应用、嵌入式系统和教育。
冒险者注意:raylib是一个用于享受视频游戏编程的编程库;没有花哨的界面,没有可视化辅助工具,没有调试按钮...只有以最纯粹的斯巴达程序员方式进行编码。
准备好学习了吗?跳转到代码示例!
特性
- 无外部依赖,所有必需的库都捆绑在raylib中
- 支持多个平台:Windows、Linux、MacOS、RPI、Android、HTML5...等等!
- 使用纯C代码(C99)编写,采用PascalCase/camelCase命名规范
- 使用OpenGL硬件加速(1.1、2.1、3.3、4.3、ES 2.0、ES 3.0)
- 独特的OpenGL抽象层(可作为独立模块使用):rlgl
- 支持多种字体格式(TTF、OTF、图像字体、AngelCode字体)
- 支持多种纹理格式,包括压缩格式(DXT、ETC、ASTC)
- 全面的3D支持,包括3D形状、模型、公告牌、高度图等!
- 灵活的材质系统,支持经典贴图和PBR贴图
- 支持3D模型动画(骨骼动画)(IQM、M3D、glTF)
- 支持着色器,包括模型着色器和后处理着色器
- 强大的数学模块用于向量、矩阵和四元数运算:raymath
- 支持音频加载和播放,包括流媒体(WAV、QOA、OGG、MP3、FLAC、XM、MOD)
- 支持VR立体渲染,可配置HMD设备参数
- 大量示例集合,包含超过140个代码示例!
- 超过70种编程语言的绑定!
- 免费开源
基本示例
这是一个基本的raylib示例,它创建一个窗口并在屏幕中央绘制文本"恭喜!你创建了你的第一个窗口!"
。你可以在这里查看此示例的网页版运行效果。
#include "raylib.h"
int main(void)
{
InitWindow(800, 450, "raylib [core] 示例 - 基本窗口");
while (!WindowShouldClose())
{
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("恭喜!你创建了你的第一个窗口!", 190, 200, 20, LIGHTGRAY);
EndDrawing();
}
CloseWindow();
return 0;
}
构建和安装
raylib的Windows、Linux、macOS、Android和HTML5二进制发布版可在Github发布页面获取。
raylib也可通过多个操作系统发行版的包管理器获得。
在多个平台上安装和构建raylib
raylib Wiki包含了在多个平台上构建和使用的详细说明。
- 在Windows上工作
- 在macOS上工作
- 在GNU Linux上工作
- 在Chrome OS上工作
- 在FreeBSD上工作
- 在树莓派上工作
- 为Android开发
- 为Web (HTML5)开发
- 在任何地方使用CMake
注意Wiki是开放编辑的,如果你在为目标平台构建raylib时遇到问题,欢迎编辑Wiki或提出相关问题。
在多个IDE中设置raylib
raylib是在Windows平台上使用Notepad++和MinGW GCC编译器开发的,但它可以在多个平台上与其他IDE一起使用。
项目目录包含了几个现成的项目模板,可用于在多个IDE中构建raylib和代码示例。
注意支持的IDE很多,一些提供的模板可能需要审查,所以如果你发现模板有问题或认为可以改进,欢迎发送PR或提出相关问题。
学习和文档
raylib的设计理念是通过示例作为主要参考来学习。虽然没有标准的API文档,但有一个速查表,包含了库中所有可用的函数,每个函数都有简短描述,输入参数和返回值名称应该足够直观,以理解每个函数的工作原理。
关于raylib设计的一些额外文档可以在raylib GitHub Wiki中找到。以下是相关链接:
联系和网络
raylib活跃在多个网络中,raylib社区每天都在不断壮大。如果你正在使用raylib并且喜欢它,欢迎加入我们的任何一个网络。最活跃的网络是我们的Discord服务器!:)
- 网页:https://www.raylib.com
- Discord:https://discord.gg/raylib
- Twitter:https://www.twitter.com/raysan5
- Twitch:https://www.twitch.tv/raysan5
- Reddit:https://www.reddit.com/r/raylib
- Patreon:https://www.patreon.com/raylib
- YouTube:https://www.youtube.com/channel/raylib
贡献者
许可证
raylib采用未修改的zlib/libpng许可证,这是一个经OSI认证的类BSD许可证,允许与闭源软件进行静态链接。查看LICENSE了解更多详情。
raylib内部使用一些库来管理窗口/图形/输入,并支持不同文件格式的加载,所有这些库都嵌入其中,可在src/external目录中找到。在raylib Wiki上查看raylib依赖项许可证了解详情。