raylib 游戏编程入门:30行代码开出第一个窗口
【免费下载链接】raylibA simple and easy-to-use library to enjoy videogames programming项目地址: https://gitcode.com/GitHub_Trending/ra/raylib
如果你写个"你好,世界"都得先手动开窗口、装渲染循环、配显卡上下文,那 raylib 值得花半小时试试。它把窗口创建、2D 绘制、3D 渲染、音频加载这些游戏编程里最繁琐的部分压成了一批好记的 C 函数,你只管写逻辑。
整个库用 C99 写成,所有依赖都打包在仓库的src/external目录里,不需要去网上找库、装包、对齐版本。
先跑通一个最小窗口示例
把仓库克隆下来(git clone https://gitcode.com/GitHub_Trending/ra/raylib),在根目录用 CMake 配置并编译一次,产物是src目录下的库文件。然后建一个main.c,把下面这段写进去,编译时链接 raylib 即可。
#include "raylib.h" int main(void) { InitWindow(800, 450, "My First Raylib Window"); SetTargetFPS(60); while (!WindowShouldClose()) { BeginDrawing(); ClearBackground(RAYWHITE); DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); EndDrawing(); } CloseWindow(); return 0; }这个 while 循环就是渲染循环,也就是游戏里每秒重复执行的"画面刷新"逻辑:清屏、画图、提交,然后等下一帧。
你刚用不到 30 行 C 代码换来了一个会呼吸的游戏窗口——它每帧重画一次画面,按 ESC 或点关闭按钮就退出。
能力地图:窗口只是起点 🧭
窗口跑起来之后,接下来能画什么、装什么,基本由三个模块决定。
用几个函数画出 2D 画面
你可以用DrawCircle、DrawRectangle、DrawTriangle这类函数直接往屏幕上摆图形,参数就是坐标、尺寸和颜色,不用碰任何顶点数据。颜色还能自己调渐变和透明度,做像素风小游戏的底图足够了。
加载外部 3D 模型并控制相机
你可以加载 .gltf、.iqm、.m3d 这些常见格式的模型,配上自由摄像机和光照,几十行代码就能转一个立体场景。模型拖进窗口就会立刻显示,调一下相机参数就是第一人称视角。
加载音频并触发播放
你可以把 WAV、MP3、OGG、FLAC 等格式的音效和音乐读进内存,用PlaySound、PlayMusic之类的函数在事件触发时播放,写个跳跃音效、背景音乐就是两个函数调用的事。
新手最常踩的两个坑 🕳️
链接时报cannot find -lGL:现象是编译通过、链接失败;原因是 Linux 缺了 Mesa 图形头文件,和 raylib 本身无关;装上系统的 GL 开发包(Debian 系叫 libgl-dev,Fedora 系叫 mesa-libGL-devel)再重跑一次。
帧率显示异常或画面发黑:现象是程序能跑但渲染不对;原因多数是编译时没走 CMake/Makefile 给出的完整宏定义,OpenGL 后端没配对;用仓库自带的projects/CMake模板重新生成一次工程。
还有一个小细节:渲染分辨率在高分屏上会被缩放,DrawText的位置看起来偏移时,先查一下窗口是否开了高 DPI 选项。
想继续往下走,做三件事:翻一遍examples/core和examples/models里的源码,每个文件都是能直接编译的完整程序;读一遍src/raylib.h,全部公开 API 和参数注释都写在这一个文件里;再把 core_basic_window.c 里SetTargetFPS(60)改成 30,看看画面和帧率怎么变。
【免费下载链接】raylibA simple and easy-to-use library to enjoy videogames programming项目地址: https://gitcode.com/GitHub_Trending/ra/raylib
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考