固定时间步、绳长投影、径向速度移除、能量归一化和计分均从空项目实现,并有自动化测试。
TOY FOLK LABORATORY · NO.001
小时候甩一下
就会叫的玩具
快速连续点击会叠加转速,按住不放会持续加速;拖动鼠标或手指画圈,还能改变绳子和竹筒的甩动轨迹。
童玩实验室 · 第 001 号玩具
竹知了
快速连续点击会叠加转速,长按则持续加速;声音默认开启,第一次操作会自动解锁。
HOW TO PLAY
怎么把它甩响
- 01
快速点按
点击“开始玩”后,在画布上连续点按。两次点击间隔越短,叠加的切向冲量越大,转速会上升得更快。
- 02
长按加速
鼠标或手指按住不放时,系统会持续施加驱动力;按住时间越长,加速效果会逐步增强,松开后自然惯性衰减。
- 03
拖动改轨迹
按住并拖动画圈,可以移动木柄锚点,让绳长、重力和手势共同改变竹筒的甩动轨迹。
- 04
分享最高分
历史最高分保存在当前设备。点击分享成绩,可生成带来源参数的页面链接。
WHY IT SOUNDS
声音不是按钮触发的,
它来自运动本身。
传统竹知了的结构在不同地区并不完全一样,但核心都离不开旋转、摩擦与薄膜振动。网页版本把手柄作为移动锚点,把竹筒视作被绳约束的质点:重力不断拉低它,手腕的圆周动作不断注入切向速度。
当前响度使用运动能量驱动原创 Web Audio 合成器。它不是对实物声学结构的精密仿真,也不是其他作品的录音;它承担的是 MVP 的交互反馈。后续自行采集实物声音后,音频层可以替换,物理和计分内核不需要重写。
ORIGINALITY & DATA
这次重新做了什么
竹筒、竹膜、木柄、红穗、纸纹和轨迹全部由本项目代码绘制,不使用外部项目图片。
当前使用振荡器、噪声、带通滤波和动态增益生成占位声音,未来只替换为自行采集的录音。
鼠标、触摸、键盘和传感器数据留在浏览器;服务器不会接收原始动作轨迹或设备姿态。
OPEN SOURCE · MIT
完整交互实现已经开源。
独立仓库包含 React、TypeScript、Canvas 2D、Web Audio、DeviceMotion、分享海报、物理与计分内核,以及 11 项自动化测试。官方试玩仍保留在当前 XBSTACK 页面。FROM WEB TO WECHAT
网站版不是终点,但它是所有版本的基准。
当前页面
用于搜索、公众号链接、桌面和手机试玩。当前已经可以完成完整游戏循环。
Live MVP公众号入口
直接使用本页,后续增加微信分享卡片、公众号关注引导和活动参数。
Compatible原生适配
复用物理和计分核心,替换为 wx Canvas、InnerAudioContext、加速度计和微信分享接口。
PlannedFAQ
常见问题
竹知了网页版怎么操作?
快速连续点击会叠加转速,长按会持续加速;拖动鼠标或手指画圈可以改变甩动轨迹。手机还可以开启体感模式,键盘用户可用方向键移动木柄,空格键切换声音。
为什么第一次打开没有声音?
浏览器不允许网页自动播放声音。点击“开启声音”后才会初始化 Web Audio,页面切到后台时也会主动暂停。
竹知了为什么会响?
传统竹知了通常利用旋转带动结构摩擦或振动,使竹膜或薄膜周期性振动并放大声音。不同地区的制作材料和结构会有差异。
现在的声音是实物录音吗?
当前版本使用独立编写的 Web Audio 合成音作为占位,不使用其他项目音频。自行采集、清理并取得可商用权利的实物录音后,会替换为采样版本。
可以在公众号里玩吗?
可以在公众号文章中放入本页链接,用户点击后在微信浏览器打开。微信小游戏版本还没有发布,后续会复用同一套物理和计分核心。
下一件玩具