这个演示把页面元素当成地形:每个小人是一个可拖拽的刚体,会站在边上行走、被甩出去、被窗口缩放发射。地板来自真实的 DOM 结构——卡片的边框是实心墙,按钮和表单控件也是实心的,文字则是能落脚但可以穿过去的地面:每一行文字各自是一层地板,小人可以从上一行掉到下一行,短句末尾踩空就落到下方的东西上。设计上还有一个细节:行距比小人矮,所以行与行之间不会把小人的路堵死,只有边框、盒子、按钮、图片和输入框会阻挡。页面还给了一堆可玩场景:楼梯、爬不上去的高楼梯、浮空平台、陷阱、随窗口宽度换行并把上面的人推走的卡片,以及底部一条兜底的长地板。
🔑 核心要点
地形成本来自真实 DOM:边框和控件是实心墙,文字行是可落脚可穿透的地板。
每行文字各自算一层地板,小人可以跨行下落,踩空短句末尾就掉到下方物体上。
行距刻意小于小人身高,避免行与行之间形成夹缝把小人物卡死。
窗口缩放会让人原地腾空,快速改变尺寸等于把人发射出去。
💡 金句
Each line of text is its own floor. Walkers can drop from line to line, fall off the end of a short line, and land on whatever is below.