raylib 快速上手:4 个核心能力,15 行代码从窗口到 3D 场景跑通
2026/9/17 18:21:10 网站建设 项目流程

raylib 快速上手:4 个核心能力,15 行代码从窗口到 3D 场景跑通

【免费下载链接】raylibA simple and easy-to-use library to enjoy videogames programming项目地址: https://gitcode.com/GitHub_Trending/ra/raylib

raylib 是一个轻量级 C 语言游戏开发库,把窗口、渲染、音频、输入封装进单个头文件。想在一个下午内验证小游戏创意,它适合你:3 条命令装好,15 行代码出第一个窗口,再跟着做一个可暂停的弹跳球,就能判断值不值得继续投入。

3 条命令装好 raylib

  • Ubuntu/Debian:sudo apt install libraylib-dev
  • macOS:brew install raylib
  • Windows:choco install raylib

想要最新版,克隆仓库git clone https://gitcode.com/GitHub_Trending/ra/raylib,进 src/ 目录依次执行makemake install。装好后新建 main.c,粘贴下面这个 15 行的最小窗口程序:

#include "raylib.h" int main(void) { InitWindow(800, 450, "raylib first window"); while (!WindowShouldClose()) { BeginDrawing(); ClearBackground(RAYWHITE); DrawText("Hello, raylib!", 320, 200, 40, LIGHTGRAY); EndDrawing(); } CloseWindow(); return 0; }

gcc main.c -o game -lraylib编译,再运行./game。你会看到一个 800×450 的白色窗口,中间一行字,左上角是 FPS 计数:

15 行代码做出可暂停的弹跳球

场景最典型:红球在屏幕里受重力弹跳,空格随时暂停。变量(位置、速度、半径、重力、暂停标志)定义在 main 开头,主循环只做三件事:读输入、更新位置、绘制。核心片段:

if (IsKeyPressed(KEY_SPACE)) paused = !paused; if (!paused) { ballPosition.x += ballSpeed.x; ballPosition.y += ballSpeed.y; ballSpeed.y += gravity; if (ballPosition.x <= ballRadius || ballPosition.x >= GetScreenWidth() - ballRadius) ballSpeed.x *= -1.0f; if (ballPosition.y <= ballRadius || ballPosition.y >= GetScreenHeight() - ballRadius) ballSpeed.y *= -0.95f; } BeginDrawing(); ClearBackground(RAYWHITE); DrawCircleV(ballPosition, ballRadius, RED); DrawText(paused ? "PAUSED" : "", 320, 20, 20, DARKGRAY); EndDrawing();

最后那个 0.95 是竖直反弹系数。改成 1.0,球永远弹不累;改成 0.5,每次弹跳高度直接腰斩,手感发闷。调这一个数字,就是在调手感:

拆解这个例子的 4 个核心能力

用 Draw 系列函数画 2D 图形

矩形、圆、文字、贴图都有对应函数,DrawCircleV画圆,DrawText画字,不用碰任何图形 API。贪吃蛇、打砖块这类 2D 游戏,就是这些图形加位置更新和碰撞判断。

用一个相机搭出 3D 场景

BeginMode3D传一个相机(位置、目标点、朝上方向、视野角),里面就能画模型和网格。LoadModel("scene.obj")一行加载外部模型,OBJ、glTF、IQM 都支持。

读取键盘和鼠标事件

IsKeyPressed判断刚按下,IsKeyDown判断按住,GetMousePosition拿光标坐标。滚轮、点击、手柄、手势各有对应函数。

用主循环驱动每一帧

while (!WindowShouldClose())让循环转起来,SetTargetFPS(60)锁帧率,循环里所有更新都按帧推进。这个骨架和任何游戏引擎一致,只是少了几层封装。

最常见的 3 个编译与运行错误

窗口打不开或闪退。raylib 默认走 OpenGL 3.3,显卡版本太旧会起不来。先glxinfo | grep "OpenGL version"确认,低于 3.3 就make GRAPHICS=GRAPHICS_API_OPENGL_21重编。

编译报 raylib.h: No such file or directory。头文件目录没进编译路径。源码构建的先sudo make install装进系统目录,或用-I-L手动指向头文件和库文件所在目录。

程序能跑但没有声音。系统缺音频开发库。执行sudo apt install libasound2-dev,重新编译。

上手后的 3 条路线

  • examples/ 目录有 220 个示例,每个标了星级难度。挑一星先编译跑通再读源码,是最快的熟悉方式。
  • projects/ 有现成的 CMake 和常见 IDE 工程模板。复制一份改成自己的游戏工程,构建系统不用自己研究。
  • src/raylib.h 是完整 API 清单。找不到某个函数时,直接在这个文件里搜。

raylib 不是引擎,没有编辑器,也没有场景系统,每一行都得自己写;但弄懂游戏是怎么一帧帧跑起来的,之后换更重的引擎也不会心里没底。先花一个下午把上面两个例子跑通,就知道它适不适合你了。

【免费下载链接】raylibA simple and easy-to-use library to enjoy videogames programming项目地址: https://gitcode.com/GitHub_Trending/ra/raylib

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询