Raylib下载详见:https://blog.csdn.net/lijiale20150909/article/details/166683223?spm1001.2014.3001.5501/******************************************************************************* bouncing_ball.c —— raylib 弹球物理演示** 编译Linux / apt 安装 raylib 后* gcc bouncing_ball.c -o bouncing_ball -lraylib -lGL -lm -lpthread -ldl -lrt -lX11** 运行* ./bouncing_ball** 操作* 空格 暂停 / 继续* R 重置球的位置与速度* 鼠标左键 在点击处重新放置球* ESC / 关闭窗口 退出******************************************************************************/#include raylib.h#include math.h#define GRAVITY 100.0f /* 重力加速度像素/秒² */#define RESTITUTION 1.06f /* 弹性系数每次反弹保留的速度比例 */#define SLEEP_SPEED 20.0f /* 静止阈值垂直速度低于此值时认为已停止像素/秒 */#define AIR_DRAG 1.06f /* 空气阻力每秒衰减系数接近 1 表示几乎无阻力 */int main(void){/* ---------- 窗口初始化 ---------- */const int screenWidth 800;const int screenHeight 600;InitWindow(screenWidth, screenHeight, raylib - 弹球物理);SetTargetFPS(60);/* ---------- 小球初始状态 ---------- *//* 注意speed 的单位是「像素/秒」不再是「像素/帧」 */Vector2 position { 100.0f, 100.0f };Vector2 speed { 220.0f, 0.0f };float radius 24.0f;bool pause false;bool sleeping false; /* 球是否已经静止在地面上 *//* ---------- 主循环 ---------- */while (!WindowShouldClose()){/* 输入 */if (IsKeyPressed(KEY_SPACE)) pause !pause;if (IsKeyPressed(KEY_R)){position (Vector2){ 100.0f, 100.0f };speed (Vector2){ 220.0f, 0.0f };sleeping false;}if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)){Vector2 m GetMousePosition();position m;speed (Vector2){ 0.0f, 0.0f };sleeping false;}/* 物理更新 */if (!pause !sleeping){float dt GetFrameTime();float dtScale dt ; /* 兼容「按帧书写」的习惯数值 *//* 1) 位移与重力 */position.x speed.x * dtScale;position.y speed.y * dtScale;speed.y GRAVITY * dtScale;/* 2) 空气阻力可选让水平速度缓慢衰减 */speed.x * powf(AIR_DRAG, dtScale);speed.y * powf(AIR_DRAG, dtScale);/* 3) 左右墙壁翻转 把球拉回边界内 */if (position.x radius){position.x radius;speed.x fabsf(speed.x); /* 强制向右 */}else if (position.x GetScreenWidth() - radius){position.x GetScreenWidth() - radius;speed.x -fabsf(speed.x); /* 强制向左 */}/* 4) 上下边界翻转 拉回边界内 能量损耗 */if (position.y radius){position.y radius;speed.y fabsf(speed.y); /* 强制向下 */}else if (position.y GetScreenHeight() - radius){position.y GetScreenHeight() - radius;speed.y * -RESTITUTION;/* 5) 静止判定弹得太小就直接停下避免永久微弹 */if (fabsf(speed.y) SLEEP_SPEED){speed.y 0.0f;position.y GetScreenHeight() - radius;sleeping true;}}}/* 绘制暂停时依然绘制画面不会黑屏 */BeginDrawing();ClearBackground(RAYWHITE);DrawCircleV(position, radius, MAROON);DrawCircleLines((int)position.x, (int)position.y, radius, DARKBROWN);DrawText(SPACE: 暂停/继续 R: 重置 鼠标左键: 放置球, 10, 10, 18, DARKGRAY);DrawFPS(10, GetScreenHeight() - 28);if (pause) DrawText([ PAUSED ], 10, 36, 20, RED);if (sleeping) DrawText([ 已静止 ], 10, 36, 20, BLUE);EndDrawing();}CloseWindow();return 0;}
企业数字化 ERP 产品动态
相关推荐
嵌入式Linux开发全景:从应用层到Qt5、汽车电子与硬件选型 技术圈每隔一段时间就有个热词冒出来,“嵌入式开发者的福音”这句话被拿来包装各种课程和板卡。但我在这个行业做了十多年,真正称得上福音的东西,从来不是某个工具或者某块板子,而是一套能打通从编译到部署的完整理解。这篇文章就… · 2026/9/27 11:32:07
个人能接做网站的活么?揭秘源码下载后的真实变现路径 个人能接做网站的活么?揭秘源码下载后的真实变现路径 找建站公司怕被坑高价,这确实是很多老板心里的痛。市面上动辄三五万的报价,看着就肉疼,但自己搞又不知道从哪下手。这时候, 源码下载… · 2026/9/27 11:32:01
OpenClaw Windows 端分步安装实录:TaoToken 统一 Key 配置与可视化验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 13:51:24
写作压力小了!2026 最新降AI率工具测评与推荐:TaoToken 统一 Key 接入实测 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 13:51:18
扩展-AI Loop:在Claude Code中实现 /loop 与 /goal 的配置指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 13:50:53
佛山网站排名提升实战:揭秘技术栈优化与费用真相 佛山网站排名提升实战:揭秘技术栈优化与费用真相 网站做好了没人访问,这大概是每个佛山老板和站长最头疼的事。花了几万块做的官网,上线三个月,百度后台每天只有个位数的展现,更别提访客了。这时候很多人会问:佛山网站排名提升到底要多少钱?其实,价格… · 2026/9/27 13:50:53
ViewFlipper 配 TaoToken:Android 轮播组件接入统一 Key 的 config 骨架 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 13:50:53
如何做seo优化性能优化 3个坑避开:懂域名服务器的站长才敢问建站报价,实操SEO优化全解 很多老板找我们聊 建站报价 时,开口就是“做个网站多少钱”,但真正卡住项目的,往往是那些连域名和服务器关系都没理顺的底层逻辑。 如果你连 ICP 备案、SSL 证书、DNS… · 2026/9/27 13:50:47
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01