二、点阵与节奏

第5课 流动的灯

任务场景:流动的灯
任务场景:流动的灯

一、任务目标

让 12×8 点阵从左到右、从上到下一颗颗点亮,形成「光点流动」;完整代码再体验触摸触发的点阵图案切换。

二、我们要学什么

  • 学习要点:嵌套循环扫点阵:外层行 Y、内层列 X,每点亮一颗就 show 并 sleep,节奏一目了然
  • 本课过关:能说明双重 for 在点阵上「按行扫过」;改 sleep 能明显加快或放慢流动。
  • 示例对齐:体验题对应「04-1 流动的灯」;完整代码对应「04-2 剪刀石头布」。

三、本节要点

本节先把「点阵像素 + 延时」做稳。流动的灯不依赖按键;触摸换图案是完整代码 04-2。

1读场景看清点阵流动
2对要点双重循环扫像素
3载入运行官方示例积木/代码

四、解题思路

  • 输入:本课体验无按键,程序自动扫屏。
  • 输出:点阵像素逐个点亮。
  • 生活对照:广告灯箱一格格亮起。
  • 验证现象:从左上角开始按行点亮;改 sleep(0.1) 只改变流速。

本课主要用到:板载点阵(onboard_matrix);完整代码另用触摸。

  1. 1明确任务「流动的灯」:先看自动扫点,再对照触摸换图案。
  2. 2外层 for Y in 0..7,内层 for X in 0..11,对 (X,Y) 调用 pixel(...,1)。
  3. 3每点亮一颗就 matrix.show(),再 time.sleep 控制节奏。
  4. 4载入后先看流动;完整代码再按 T3 换剪刀石头布图案。

流程示意(可对照左侧文字)

任务:流动的灯双重循环扫像素show + sleep 成节奏载入运行对照

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
点亮像素点(display_bright_point)
板载显示控制点阵某一个点的亮灭。体验:pixel(X, Y, 1) 逐点点亮。
刷新点阵(display / show)
板载显示把缓冲里的像素画到屏上。体验:每次 pixel 后 show。
延时(controls_delay_new)
控制暂停指定时间,常用于动画节奏。体验:sleep(0.1) 控制流速。
遍历循环(controls_forEach / range)
控制按范围反复执行。体验:外层 Y、内层 X 嵌套。

六、知识点讲解

本课用双重循环扫过 12×8 点阵:像用手电筒一格格照过屏幕,延时决定「流动」有多快。

点阵坐标

Zero 板载是 12 列 × 8 行单色点阵。pixel(x, y, 1) 点亮,0 熄灭;必须 show() 才会看见。

嵌套循环 = 扫屏

外层走行、内层走列,保证从左到右、再换下一行。少一层循环就只能亮一条线或一个点。

延时就是节奏

time.sleep(0.1) 让人眼跟得上。改小变快,改大变慢——后面闪烁/动画课也靠同一套节奏感。

  • 本课不教 RGB 彩灯:点阵只有亮/灭两态。
  • 完整代码 04-2 用 was_touched(3) 随机显示三种图案,是「触摸 → 点阵」的延伸。
  • 过关:能口述「先 Y 再 X」的扫法,并指出哪一行在控制流速。

先在脑子里走一遍「第 0 行亮完再第 1 行」,再载入示例对照点阵。

七、编程练习

点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

官方示例:04-1-快速入门-流动的灯.mix。载入后运行。

八、课堂练习

先完成两道判断题,再完成选择题;全部选定后点「检查」。

  1. 判断:本课体验需要按键,灯才会流动。

  2. 判断:体验题先扫完一行的列,再换下一行。

  3. 体验题点阵扫描顺序是?

  4. 本课输出主要是?

九、本节小结

记住:流动的灯靠嵌套循环扫点阵,不是靠 RGB 变色。