raylib

C/C++ 2025-08-17

raylib是一个简单易用的库,可以享受视频游戏编程。

raylib受到Borland BGI图形LIB的高度启发和XNA框架,它特别适合原型,工具,图形应用,嵌入式系统和教育。

注意冒险家: raylib是一个编程库,可以享受视频游戏编程;没有花哨的界面,没有视觉助手,没有调试按钮...只是以最纯净的Spartan Programmer方式编码。

准备学习了吗?跳到代码示例!



特征

  • 没有外部依赖项,所有必需的库都包含在raylib中
  • 支持多个平台: Windows,Linux,MacOS,RPI,Android,HTML5 ...等等!
  • 使用Pascalcase/Camelcase符号编写普通C代码(C99)
  • 用OpenGL: 1.1、2.1、3.3、4.3,ES 2.0,ES 3.0加速硬件
  • 唯一的OpenGL抽象层(可用作为独立模块):RLGL
  • 支持多种字体格式(TTF,OTF,FNT,BDF,Sprite字体)
  • 支持的多种纹理格式,包括压缩格式(DXT等,ASTC)
  • 完整的3D支持,包括3D形状,型号,广告牌,高度图等!
  • 灵活的材料系统,支撑经典地图和PBR地图
  • 支持动画3D模型(骨骼骨骼动画)(IQM,M3D,GLTF)
  • 着色器的支持,包括模型着色器和处理。
  • 矢量,矩阵和季节操作的功能强大的数学模块:Raymath
  • 音频加载和播放流支持(WAV,QOA,OGG,MP3,FLAC,XM,MOD)
  • VR立体声渲染支持使用可配置的HMD设备参数
  • 大量示例收集+140代码示例!
  • 绑定+70编程语言!
  • 免费和开源

基本示例

这是一个基本的raylib示例,它创建一个窗口并绘制文本"Congrats! You created your first window!"在屏幕中间。在此处查看此示例在Web上实时运行。

raylib.h" int main(void) { InitWindow(800, 450, " raylib [core] example - basic window"); while (!WindowShouldClose()) { BeginDrawing(); ClearBackground(RAYWHITE); DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); EndDrawing(); } CloseWindow(); return 0; }">
 #include " raylib .h"

int main ( void )
{
    InitWindow ( 800 , 450 , " raylib [core] example - basic window" );

    while (! WindowShouldClose ())
    {
        BeginDrawing ();
            ClearBackground ( RAYWHITE );
            DrawText ( "Congrats! You created your first window!" , 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上工作
  • 在覆盆子Pi上工作
  • 为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库设计
  • raylib示例集
  • raylib Games Collection

联系人和网络

raylib存在于多个网络中, raylib社区每天都在增长。如果您正在使用raylib并享受它,请随时加入我们的任何一个网络。最活跃的网络是我们的Discord服务器! :)

  • 网页:https://www.raylib.com
  • 不和谐:https://discord.gg/raylib
  • Twitter:https://www.twitter.com/raysan5
  • Bluesky:https://bsky.app/profile/raysan5
  • 抽搐: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的许可证,可允许使用封闭的源软件进行静态链接。检查许可证以获取更多详细信息。

raylib在内部使用一些库来用于窗口/图形/输入管理,并支持不同的文件格式加载,所有这些库都嵌入并在SRC/外部目录中可用。查看raylib依赖项在raylib Wiki上的许可证以获取详细信息。

下载源码

通过命令行克隆项目:

git clone https://github.com/raysan5/raylib.git