跳转至内容

03. 计划,实战,小丑牌

2.27,规划一下接下来的学习计划,与 CS50G 课程并行。

前提

  • 每天投入:60~120 分钟
  • 每个 Demo 必须满足:
    1. 可启动运行(love .
    2. 有明确交互或视觉反馈
    3. 有一个可验收结果(截图/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相机与坐标系建立世界坐标/屏幕坐标意识可平移缩放场景;点击显示两套坐标
04Atlas + 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拖拽系统完成抓取-吸附-放置动作链卡牌拖到槽位自动吸附;非法槽位回弹
13Object/Node 轻量对象系统实现可继承对象 + 场景节点Object:extend() + Node;父子节点联动
14Moveable 弹簧插值复现“追赶式运动”点击设置目标位 T;可见位 VT 弹簧追随
15Juice 动效系统实现 Balatro 风格反馈点击触发 scale + rotation 阻尼振荡;可叠加
16事件队列将动作脚本化而非写死 update事件序列:翻牌 → 停顿 → 加分 → 收牌;支持条件等待
17缓动事件将数值变化纳入事件系统分数 0→1000 三种曲线演示;可实时切换可视化
18卡牌区域容器实现手牌区扇形排布与重排8 张卡牌扇形排列;插入/移除后自动重排
19Shader 基础:溶解效果打通 Lua 与 GLSL 参数联动空格触发卡牌 dissolve;可调速度与边缘颜色
20Shader 后处理: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 张已出牌做牌型判断;返回牌型名 + 基础分
28Chips × Mult 计分管线组织可扩展计算链计分明细面板;支持 2~3 条伪 Joker 修正规则
29回合循环让系统形成可玩闭环抽牌→出牌→结算→重置;显示目标分与已得分
30Mini Balatro 竖切版本封装为可试玩切片启动即玩(发牌/选牌/出牌/计分/下一回合);含至少 3 类动效