用Scratch侦测模块做个“声控宠物”:教孩子玩转声音响度和鼠标坐标

张开发
2026/4/18 22:53:21 15 分钟阅读

分享文章

用Scratch侦测模块做个“声控宠物”:教孩子玩转声音响度和鼠标坐标
用Scratch侦测模块打造会互动的声控电子宠物亲子编程的创意实践当孩子第一次看到自己编写的程序能对声音和鼠标动作做出实时反应时那种惊喜的眼神总是令人难忘。Scratch的侦测模块就像给数字世界装上了感官系统让静态的角色突然拥有了感知环境的能力。今天我们要做的不是简单的功能演示而是一个会跟随鼠标移动、能根据音量大小跳跃的电子宠物最后还会用问答积木给它赋予简单的对话能力——整个过程就像在组装一个会互动的数字生命体。这个项目特别适合家长和孩子在周末午后一起完成或者作为编程课堂上的小组活动。你不需要任何编程基础只要跟着步骤操作90分钟内就能收获一个专属的互动宠物。我们会从最基础的积木拼接开始逐步增加复杂功能每个阶段都能立即看到效果反馈这种即时成就感正是保持学习动力的关键。1. 项目准备与基础搭建在开始编写代码之前我们需要先设计好电子宠物的外观和互动规则。打开Scratch 3.0点击右下角的选择一个角色按钮从内置素材库中挑选一个动物形象。猫、狗、恐龙或者幻想生物都可以——让孩子选择他们最喜欢的形象这是激发创造力的第一步。提示如果找不到满意的角色可以点击绘制按钮自己设计或者上传本地图片。自定义角色往往能让孩子更有归属感。接下来设置舞台背景建议选择简洁的纯色背景或室内场景这样能更清晰地观察角色移动。然后打开声音标签页为角色添加几个音效跳跃声、欢呼声等这些将在后续交互中使用。基础代码结构只需要两个简单的积木当绿旗被点击 重复执行这个无限循环将作为所有侦测逻辑的容器。现在点击绿旗运行虽然还看不到任何效果但程序已经在后台持续运行了。2. 实现鼠标跟随效果让宠物跟随鼠标移动是建立基础互动的第一步。Scratch提供了直接获取鼠标坐标的积木我们只需要将这些值赋给角色的位置属性当绿旗被点击 重复执行 移到x:(鼠标的x坐标) y:(鼠标的y坐标)不过这样实现的效果太过机械——宠物会瞬间移动到鼠标位置缺乏自然感。我们可以增加一些平滑过渡当绿旗被点击 重复执行 在1秒内滑行到x:(鼠标的x坐标) y:(鼠标的y坐标)现在宠物会有个缓动的跟随效果。如果想进一步增加趣味性可以设置不完全跟随当绿旗被点击 重复执行 将x增加 ((鼠标的x坐标 - x位置) / 10) 将y增加 ((鼠标的y坐标 - y位置) / 10)这种实现方式会让宠物总是落后鼠标一小段距离像真的在追逐一样。你可以和孩子一起调整分母的数字现在是10观察不同数值带来的行为变化——这是理解程序参数影响的好机会。3. 添加声控跳跃功能接下来我们要让宠物对声音产生反应。确保电脑连接了麦克风大多数笔记本都内置然后添加以下代码块当绿旗被点击 重复执行 如果 (响度) 30 那么 播放声音 [跳跃声 v] 在0.5秒内将y坐标增加100 在0.5秒内将y坐标增加-100这段代码的工作原理持续检测环境音量响度值当音量超过阈值这里是30时触发跳跃动作通过先上升再下降的y坐标变化模拟跳跃动画配合播放跳跃音效增强反馈感和孩子一起测试时可以拍手或说话来触发跳跃。这时候可能会发现两个问题一是阈值30不一定适合所有麦克风灵敏度二是连续发声会导致跳跃动作卡顿。我们来优化一下当绿旗被点击 重复执行 如果 (响度) (音量阈值) 那么 播放声音 [跳跃声 v] 将y坐标设为100 等待0.3秒 将y坐标设为0 等待0.5秒新增一个音量阈值变量建议初始值20让孩子通过反复测试找到一个合适的数值。等待时间的调整也让动画更流畅。4. 组合交互与进阶功能现在我们已经实现了基础跟随和声控功能接下来要让这些交互有机结合起来。首先给宠物添加一些个性反馈当绿旗被点击 重复执行 如果 (响度) (音量阈值) 那么 播放声音 [欢呼声 v] 下一个造型 说 [好开心] 2秒然后增加一个互动问答环节当绿旗被点击 询问 [你想和我玩吗] 并等待 如果 (回答) [想] 那么 说 [太棒了] 2秒 否则 说 [我会等你的...] 2秒把这些代码块合理地插入到主循环中一个完整的互动宠物就初具雏形了。为了增加挑战性可以尝试以下扩展添加饥饿度变量需要定期用声音喂食实现不同音量对应不同跳跃高度当宠物碰到舞台边缘时播放特殊音效记录互动次数并显示在舞台上5. 调试技巧与创意扩展在项目开发过程中调试是不可避免的环节。Scratch提供了几种实用的调试方法实时监控变量右键点击任何变量选择显示监控器数值变化会实时显示在舞台上。这对理解程序运行逻辑特别有帮助。单步执行在复杂脚本上右键选择单步执行可以逐块运行代码观察每一步的效果。常见问题解决方案问题现象可能原因解决方法角色不移动坐标设置错误检查x/y坐标值是否合理声音无反应麦克风未授权检查浏览器麦克风权限动画卡顿缺少等待时间在连续动作间插入等待完成基础版本后鼓励孩子发挥想象力添加新功能。比如让宠物在不同时间说不同的话使用时间侦测积木添加多个角色实现宠物间的互动设计一个需要声音控制的障碍赛道这些扩展不仅能巩固已学知识还能培养解决问题的能力。记得定期保存项目版本这样随时可以回溯到之前的稳定状态。6. 教学实践与学习收获在实际教学场景中这个项目可以拆解为多个课时逐步完成。第一节课专注鼠标跟随第二节加入声音控制第三节完善交互对话。每完成一个阶段都鼓励学生展示成果并互相评价。通过这个项目孩子将掌握以下核心概念事件驱动编程的基本思想传感器数据声音、位置的获取与应用程序逻辑的条件判断动画原理与状态切换更重要的是他们会直观理解计算机如何通过传感器与现实世界互动——这是物联网和智能设备的基础原理。当看到自己创造的宠物能听会动时那种我能创造智能事物的自信会深深扎根。最后分享一个小技巧项目完成后点击Scratch菜单中的文件→保存到电脑将作品导出为.sb3文件。这样不仅可以备份还能发送给朋友一起玩。如果孩子特别自豪自己的创作不妨帮他们上传到Scratch社区让全世界的用户都能体验这个独特的声控宠物。

更多文章