30 行 C 代码跑通 raylib 即时模式 GUI:raygui 游戏参数面板实战
30 行 C 代码跑通 raylib 即时模式 GUIraygui 游戏参数面板实战【免费下载链接】raylibA simple and easy-to-use library to enjoy videogames programming项目地址: https://gitcode.com/GitHub_Trending/ra/raylib下面用 raylib 的 raygui 模块做出一个游戏参数面板滑块、开关、下拉框直接改变画面里的图形。全文一个 30 行以内的 C 语言游戏界面示例照着敲完就能编译运行是初学 GUI 开发很好的起点raygui 教程向。先看能做出什么上面的截图里右侧一块面板上的滑块在拖左侧图形跟着变——这就是即时模式 GUI 的全部工作方式。每帧绘制循环里你直接调用GuiSliderBar()这类函数画出控件和处理输入是同一步不画的时候控件就不存在也不用维护控件状态树。保留模式框架得让你管理消息、回调和状态同步这里没有。三步跑通第一个 GUI整个流程就三步对应代码里的三段第一步初始化。引入 raygui 的入口是头文件。在文件最前面写#define RAYGUI_IMPLEMENTATIONraygui 就把实现展开进来——单文件、无额外依赖这正是即时模式 GUI 常用的集成方式。第二步声明控件数据。控件是即时重绘的状态就放在几个 C 变量里不需要任何注册或创建步骤。第三步每帧重绘。游戏循环里每帧调用一遍控件函数raygui 根据鼠标输入更新你传入的变量。完整示例单文件不超过 30 行#include raylib.h #define RAYGUI_IMPLEMENTATION #include raygui.h #include stdio.h int main(void) { InitWindow(800, 450, raygui first GUI); float rectWidth 200.0f; float roundness 0.1f; bool filled true; int colorChoice 0; int colors[3] { RED, BLUE, GREEN }; SetTargetFPS(60); while (!WindowShouldClose()) { BeginDrawing(); ClearBackground(RAYWHITE); GuiGroupBox((Rectangle){ 550, 10, 230, 150 }, Panel); GuiSliderBar((Rectangle){ 570, 40, 190, 20 }, width, TextFormat(%.0f, rectWidth), rectWidth, 50.0f, 450.0f); GuiSliderBar((Rectangle){ 570, 75, 190, 20 }, roundness, TextFormat(%.2f, roundness), roundness, 0.0f, 1.0f); GuiCheckBox((Rectangle){ 570, 110, 20, 20 }, filled, filled); GuiDropdownBox((Rectangle){ 570, 140, 190, 30 }, red;blue;green, 3, colorChoice); if (filled) { DrawRectangleRounded((Rectangle){ 60, 100, rectWidth, 180 }, roundness, 8, (Color)colors[colorChoice]); } else { DrawRectangleRoundedLines((Rectangle){ 60, 100, rectWidth, 180 }, roundness, 8, 4, (Color)colors[colorChoice]); } EndDrawing(); } CloseWindow(); return 0; }编译方式就是普通 raylib 示例cc gui_first.c -lraylib -lGL -lm -o gui_firstWindows 或平台差异略仓库examples/下任意示例都可对照。运行后拖一下滑块左侧矩形的宽度和圆角实时跟着变。注意一个细节GuiDropdownBox的三个选项用分号拼在一个字符串里选中项是一个下标——这就是 raygui 控件的参数风格位置用Rectangle状态用指针。五个高频控件逐个上手滑块控件调连续参数float volume 0.8f; GuiSliderBar((Rectangle){ 50, 200, 200, 20 }, Volume, TextFormat(%d%%, (int)(volume * 100)), volume, 0.0f, 1.0f);第二个参数是左侧标签第三个是右侧的实时数值自己用TextFormat格式化最后两个是取值范围。音量、缩放、难度这类连续值都交给它。开关复选框布尔值bool sfxOn true; GuiCheckBox((Rectangle){ 50, 240, 20, 20 }, SFX, sfxOn);一个bool加一句文案。注意位置参数只需 20x20 的框标签自动画在右边。音效开关、调试显示这类二值状态用开关最直观。下拉框有限选项int quality 1; GuiDropdownBox((Rectangle){ 50, 280, 200, 30 }, low;medium;high, 3, quality);选项仍是分号分隔的字符串第三个参数是选项个数返回的下标存在quality里。画质、语言、难度档位这类枚举值就用它比一排按钮省地方。按钮事件型操作if (GuiButton((Rectangle){ 50, 320, 150, 40 }, Start Game)) { ResetLevel(); }按钮不绑定状态返回值表示这一帧是否被按下典型用法就是if (GuiButton(...))触发一次性动作开始游戏、确认、返回菜单。分组框给控件画个框GuiGroupBox((Rectangle){ 40, 10, 260, 400 }, Settings);纯视觉控件一个带标题的边框把相关控件装进去。面板再多也不会乱上面所有示例里的 Panel、Settings 就是它。实战拼一个实时参数面板把上面五种控件组合起来就是实战部分。布局思路右侧 230 像素宽的列作为参数面板左侧留白给图形。面板里放宽度和圆角两个滑块、填充/描边开关、颜色下拉框每帧根据这些变量重绘圆角矩形。右侧就是同一套思路的官方示例切片数量、百分比标签、甜甜圈模式全部由 GUI 控件驱动。面板返回值一变画面当帧就变中间没有任何通知图形层的代码——这就是即时模式省心的地方。仓库里现成的对照素材examples/shapes/shapes_rounded_rectangle_drawing.c滑块 开关控制圆角矩形examples/shapes/shapes_pie_chart.c下拉框、开关驱动饼图examples/text/text_font_loading.c字体加载的完整写法⚠️ 踩坑提示坑一换台机器布局就散。800x450 下写死的坐标在高分屏上控件挤成一团小屏上直接出界。对策面板位置相对屏幕算。int panelX GetScreenWidth() - 260; GuiGroupBox((Rectangle){ panelX, 20, 230, 400 }, Settings);面板内部控件可以相对panelX继续偏移整块面板随窗口移动跨平台 UI 布局基本就稳了。坑二中文全是方块。raylib 默认字体只带 ASCII 码位控件里写中文会显示成方块或乱码。对策用LoadFontEx加载含中文码位的字体再用GuiSetFont交给 raygui之后所有控件的文字都走这个字体。Font zhFont LoadFontEx(your_cjk_font.ttf, 32, NULL, 0); GuiSetFont(zhFont);字体文件放哪都行路径按你项目结构写即可码位参数传NULL表示加载字体里全部字符。下一步资料与进阶清单源码都在仓库里按需翻examples/shapes/raygui.hraygui 完整 API 与注释examples/core/core_basic_window.c最小的 raylib 窗口程序raylib 官方文档见 README 里的 raylib官网链接各函数行为以官方文档为准进阶清单每条一句话按顺序做收益最高主题GuiLoadStyle(style.rgs)加载 .rgs 主题文件一套配色换全界面无脑操作。复杂布局面板内容超一屏就上GuiScrollPanel滚动条 raygui 自带。多语言文案抽成字符串表配合LoadFontEx加载对应语言的字体文件。状态联动用GuiEnable/GuiDisable按开关状态禁用关联控件交互更严谨。即时模式的 GUI 不神秘声明变量、每帧调用控件、读回值三十行就能跑起来剩下的只是把面板越拼越熟练的事。【免费下载链接】raylibA simple and easy-to-use library to enjoy videogames programming项目地址: https://gitcode.com/GitHub_Trending/ra/raylib创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI智能体推荐系统:如何为复杂叙事查询匹配最佳AI助手

AI智能体推荐系统:如何为复杂叙事查询匹配最佳AI助手

1. 项目概述:当“讲故事”的查询遇上AI智能体推荐最近在AI应用落地的圈子里,一个词被反复提及:AgentSelect。乍一看,它像是一个工具或平台的名字,但结合其全称“Benchmark for Narrative Query-to-Agent Recommendatio…

2026/8/24 9:41:04 阅读更多 →
用100万域名压测BBRF:高吞吐子域名入库管道是怎么实现的(含测试数据与源码)

用100万域名压测BBRF:高吞吐子域名入库管道是怎么实现的(含测试数据与源码)

用100万域名压测BBRF:高吞吐子域名入库管道是怎么实现的(含测试数据与源码) 【免费下载链接】bbrf-client The Bug Bounty Reconnaissance Framework (BBRF) can help you coordinate your reconnaissance workflows across multiple devices…

2026/8/24 9:40:03 阅读更多 →
MRoundedButton完全指南:5分钟复刻iOS 7电话App圆角按钮与淡入淡出动画

MRoundedButton完全指南:5分钟复刻iOS 7电话App圆角按钮与淡入淡出动画

MRoundedButton完全指南:5分钟复刻iOS 7电话App圆角按钮与淡入淡出动画 【免费下载链接】MRoundedButton UIControl subclass like iOS 7 Phone app button 项目地址: https://gitcode.com/gh_mirrors/mr/MRoundedButton MRoundedButton 是一款免费开源的 iO…

2026/8/24 9:40:03 阅读更多 →

最新新闻

机器人产业瓶颈转移:从硬件堆料到软件算法与系统集成的深度竞争

机器人产业瓶颈转移:从硬件堆料到软件算法与系统集成的深度竞争

最近,机器人圈子里一个看似不起眼的消息,却可能预示着行业底层逻辑的深刻转变。彭博社报道,中国伺服电机龙头雷赛智能透露,其电机订单已超百万台,并直言“机器人瓶颈已不在硬件”。这句话如果出自一家普通公司&#xf…

2026/8/24 18:11:10 阅读更多 →
Claude Code实战指南:从环境搭建到Skill工具高效开发

Claude Code实战指南:从环境搭建到Skill工具高效开发

最近在尝试将AI大模型集成到日常开发工作流中,发现Claude Code凭借其强大的代码生成、理解和调试能力,成为了提升效率的利器。然而,从环境搭建到实际项目落地,过程中遇到了不少配置上的“坑”和工具使用上的困惑,网上的…

2026/8/24 18:11:10 阅读更多 →
HiFi-BRep框架本地部署指南:解决AI生成CAD模型的脆性问题

HiFi-BRep框架本地部署指南:解决AI生成CAD模型的脆性问题

这次我们来看一个在三维计算机视觉和CAD生成领域值得关注的新框架:HiFi-BRep。这个项目由研究团队开源,核心目标是解决CAD生成中的“脆性问题”——简单说,就是让AI生成的CAD模型(特别是B-Rep边界表示模型)在几何精度和…

2026/8/24 18:11:10 阅读更多 →
飞行人形机器人开发:从仿真到实物的核心技术栈与工程实践

飞行人形机器人开发:从仿真到实物的核心技术栈与工程实践

在实际机器人研发和仿生控制领域,人形机器人的动态平衡与复杂地形适应一直是核心挑战。将飞行能力与人形结构结合,更是对动力、控制、结构设计提出了前所未有的要求。这类“会飞的人形机器人”并非科幻,而是当前前沿机器人技术探索的一个具体…

2026/8/24 18:11:10 阅读更多 →
openpilot CAN 总线延迟压进 50ms:转向响应的定位、度量与回收

openpilot CAN 总线延迟压进 50ms:转向响应的定位、度量与回收

openpilot CAN 总线延迟压进 50ms:转向响应的定位、度量与回收 【免费下载链接】openpilot openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300 supported cars. 项目地址: https://gitcode.com/GitHub…

2026/8/24 18:11:10 阅读更多 →
基于大语言模型与多智能体仿真的疫苗舆论动力学研究

基于大语言模型与多智能体仿真的疫苗舆论动力学研究

1. 项目概述:当大语言模型遇见多智能体仿真最近几年,大语言模型(LLM)的火爆程度有目共睹,从写代码到做PPT,几乎无所不能。但作为一名长期关注复杂系统与社会仿真的研究者,我一直在思考一个问题&…

2026/8/24 18:10:10 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →