03. 计划,实战,小丑牌
2.27,规划一下接下来的学习计划,与 CS50G 课程并行。
前提
- 每天投入:60~120 分钟
- 每个 Demo 必须满足:
- 可启动运行(
love .) - 有明确交互或视觉反馈
- 有一个可验收结果(截图/GIF/录屏)
- 可启动运行(
- 难度策略:前 7 天打基础,第 8 天开始直接进入“Balatro 同款机制”
- 代码组织建议:
demos/day01~demos/day30,每天独立目录
30 天计划
| Day | 主题 | 学习目标(摘要) | 今日 Demo 产出(摘要) |
|---|---|---|---|
| 01 | 可运行游戏壳 + 调试 HUD | 掌握 love.load/update/draw 与调试信息显示 | 显示 FPS/内存/dt/鼠标坐标,F1 开关 HUD |
| 02 | 自定义主循环 + 帧率上限控制 | 理解重写 love.run 的意义 | 切换 30/60/120 FPS cap;显示原始/平滑 dt |
| 03 | 相机与坐标系 | 建立世界坐标/屏幕坐标意识 | 可平移缩放场景;点击显示两套坐标 |
| 04 | Atlas + Quad 卡牌裁剪器 | 实现从 atlas 裁切卡牌流程 | 按行列裁牌;支持翻页预览多个 Quad |
| 05 | 分层渲染队列 | 理解 draw pass 与渲染顺序 | 实现 bg -> world -> fx -> ui 队列;动态 z-index |
| 06 | 窗口自适配与虚拟分辨率 | 实现不同窗口尺寸下稳定布局 | 16:9 虚拟画布 + 黑边适配 |
| 07 | 输入路由系统 | 统一管理键盘/鼠标输入 | InputManager 管理 pressed/released/down;动作映射 |
| 08 | 可点击 UI 组件 | 从零实现基础 UI 交互 | 开始/重置/退出按钮;hover/press/disabled 三态 |
| 09 | 声明式 UI 树 | 用 table/DSL 定义 UI | 迷你 DSL R/C/T/B;自动布局与对齐 |
| 10 | 状态机(菜单/游戏/暂停) | 建立场景生命周期 | StateManager 支持 enter/update/draw/leave;三状态切换 |
| 11 | 命中检测与焦点管理 | 建立鼠标操作目标规则 | 重叠元素按层级命中;唯一 hover 焦点 + tooltip |
| 12 | 拖拽系统 | 完成抓取-吸附-放置动作链 | 卡牌拖到槽位自动吸附;非法槽位回弹 |
| 13 | Object/Node 轻量对象系统 | 实现可继承对象 + 场景节点 | Object:extend() + Node;父子节点联动 |
| 14 | Moveable 弹簧插值 | 复现“追赶式运动” | 点击设置目标位 T;可见位 VT 弹簧追随 |
| 15 | Juice 动效系统 | 实现 Balatro 风格反馈 | 点击触发 scale + rotation 阻尼振荡;可叠加 |
| 16 | 事件队列 | 将动作脚本化而非写死 update | 事件序列:翻牌 → 停顿 → 加分 → 收牌;支持条件等待 |
| 17 | 缓动事件 | 将数值变化纳入事件系统 | 分数 0→1000 三种曲线演示;可实时切换可视化 |
| 18 | 卡牌区域容器 | 实现手牌区扇形排布与重排 | 8 张卡牌扇形排列;插入/移除后自动重排 |
| 19 | Shader 基础:溶解效果 | 打通 Lua 与 GLSL 参数联动 | 空格触发卡牌 dissolve;可调速度与边缘颜色 |
| 20 | Shader 后处理:CRT 屏幕 | 理解后处理管线 | 扫描线/色差/噪点开关;总强度滑条 |
| 21 | 卡牌材质 Shader | 做卡牌稀有度视觉差异 | 三材质并排展示(foil/holo/polychrome);鼠标影响高光 |
| 22 | 手写粒子系统 | 掌握对象池 + 发射器参数化 | 点击爆炸粒子 + 环境尘埃;粒子附着移动卡牌 |
| 23 | 动态文字系统(DynaText) | 动画化分数字样与标题字样 | +500 Chips 弹出放大淡出;标题逐字 pop-in + float |
| 24 | 音频总线(BGM/SFX/AMB) | 建立可扩展音频架构 | 三总线独立音量;状态切换淡入淡出 |
| 25 | 扑克牌建模 + 洗牌/发牌流程 | 构建最小可玩牌堆系统 | 标准 52 张牌对象;洗牌、抽 8、弃牌回收 |
| 26 | 手牌选择与出牌规则 | 实现出牌阶段交互 | 点击选择/取消最多 5 张;确认后进入结算前状态 |
| 27 | 牌型识别器 | 实现评分输入核心 | 对 5 张已出牌做牌型判断;返回牌型名 + 基础分 |
| 28 | Chips × Mult 计分管线 | 组织可扩展计算链 | 计分明细面板;支持 2~3 条伪 Joker 修正规则 |
| 29 | 回合循环 | 让系统形成可玩闭环 | 抽牌→出牌→结算→重置;显示目标分与已得分 |
| 30 | Mini Balatro 竖切版本 | 封装为可试玩切片 | 启动即玩(发牌/选牌/出牌/计分/下一回合);含至少 3 类动效 |