C++ × RAYLIB / 从第一行代码开始
迷你肉鸽 · 编程闯关课
把一个半成品,亲手变成能玩的小游戏。用 C++ 和 raylib,一次学一个本领,边写边玩;用 Git 为每次进步存档。
🔧 第一次配置(只做一次)
这门课的代码在老师的公开库 xianyudd/first-frame。你先复刻(fork)一份到自己账号,之后每节课都在自己的复刻里写。
- 在 GitHub 打开 xianyudd/first-frame,点右上角 Fork,复刻到你自己的账号。保持 Public,不要改成 Private。
- 在你复刻的 Actions 页启用工作流(只点这一次):打开
https://github.com/<你>/first-frame/actions,点绿色按钮 I understand my workflows, go ahead and enable them。复刻出来的仓库默认不跑任何工作流 —— 不点这一步,后面 push 不会有任何反应,也不会报错。 - 把你的复刻 clone 到电脑(
<你>换成你的 GitHub 用户名):
git clone https://github.com/<你>/first-frame.git cd first-frame git remote add upstream https://github.com/xianyudd/first-frame.git # 记住老师的库,取新课用 git config commit.template .gitmessage # git commit 弹出中文模板
origin = 你自己的复刻(往这里 push),upstream = 老师的库(从这里取新课)。若记混,可用 git remote -v 查看。第一次用 Git,或想把要用到的命令一次看全?→ Git 闯关指南。
🗺️ 课程地图
从第 1 课出发,每节课给游戏加一个新能力。标有「可开始」的课已经开放,其余课程会陆续更新。
PUSH 即可见 · 自动评测
我的闯关进度
输入你的 GitHub 用户名,这里会读你自己复刻里每节课的自动评测结果。把 my-lesson-N 分支 push 上去,几分钟后每项 TODO 会显示自动检查状态;第 2 课的贴图仍需亲眼检查;第 3 课只统计 01–09 的自动组,10 是人工验收,BLOCKED 是前置未过而未执行,不是通过。第4课六章的13个TODO分别自动检查,06包含可复现数值实验;整帧回归单独显示,自动结果不代替画面、声音与解释质量检查。第一次来,先看 《进度与提交》——整条循环和你要做的每一步都在那里。
填 4 个函数:子弹飞行、四方向射击、击中得分、敌人追人。练 for / if / 数组 / 碰撞检测。
给游戏换上真正的贴图,加入四种「打法不同」的敌人:普通、快速、重甲、精英……练类型 + 配置表(数据驱动)。
把世界扩到窗口外,让镜头跟随、墙挡住身体、声音跟随事件。10 项任务、12 个定位标记,分阶段自己查资料、实验与解释。
血条、保护与受伤反馈、三分钟胜负,再靠击败经验选择成长:攻击、射速、最大血量或回血。六章13个TODO分别自动评分,05分三小段,06做真实数值实验。
敌人会巡逻、警觉、追击、攻击,还会绕开墙找到你。练状态机、BFS 网格寻路。
打怪掉血包、金币、武器;捡起来就变强。练掉落表、增益系统(复用配置表思路)。
资料库 · 随课程更新
怪物图鉴游戏里每一种怪物的样子、脾气和打法。目前收录四种:普通 · 快速 · 重甲 · 精英。
翻开图鉴 →▶️ 每节课怎么开始
配置好后,开始一门新课只需两条命令:取回老师的代码,再创建自己的练习分支。下面以第 2 课为例;第 1 课请用手册里的命令。
git fetch upstream # 取老师最新的课 git switch -c my-lesson-2 --no-track upstream/lesson-2 # 例:从第2课起点开自己的分支
- 只在自己的
my-...分支上编写、提交(commit)。 main和lesson-*是只读起点,不修改、不推送。- 想备份成果:
git push -u origin my-lesson-2(推送到你的复刻)。
★TODO。命令记不住?Git 闯关指南 里有速查表和「卡住了怎么办」。