放在终端页里的版本。小鲸鱼趴着不动,只换表情、摆尾巴、在身边冒出小道具,所有动静都收在它自己那一小块地方里。每一帧都是整像素的静态画面,在终端里用半块字符 ▀ 画出来,正好 42 列 × 15 行。
和之前那一组一一对应,只是把大动作换成了表情、尾巴和道具。GIF 放大 8 倍、透明背景,点卡片在下面逐帧打开。
每一帧由几层叠出来:尾巴姿态、表情、头饰、道具。左边一帧一帧看,打开“标出改动像素”能看到这一帧相比上一帧到底改了哪些格子;下面的泳道图按时长把每一层的变化排开。
快捷键:空格播放/暂停,← → 逐帧。
素材包里有全部帧的像素数据、GIF、精灵表,还有 Python 和 Node 两个零依赖的终端播放器,可以直接接进你自己的终端程序。
# 需要支持 24 位真彩色的终端 $ python3 play.py --list $ python3 play.py thinking $ python3 play.py --all $ node play.mjs happy --once
接进自己的程序时,读 frames.json:每帧是 30 行、每行 42 个字符的像素串,外加这一帧的时长 dur。每两行像素合成一行字符,用 ▀ 画:上面的像素当前景色,下面的当背景色。play.mjs 里的 renderFrame() 可以直接复用。