用你的手指在 Scratch 中喂养 Pishi
使用食指移动一个球,抓住鱼,并在这个由摄像头控制的 Scratch 游戏中喂养 Pishi。
难度
中级
预计时间
20–25 分钟
扩展
HANDPOSE
📖 你将学到什么
- 如何通过手部追踪检测食指指尖的位置
- 如何使用手指控制 Scratch 角色
- 如何让一个角色携带另一个角色移动
- 如何创建一个计时得分游戏
- 如何使用广播让角色做出反应
🛠️ 构建你的项目
准备 Pishi 和游戏
将 Pishi 放在舞台左侧,并创建三个变量:
- score(分数)
- time(时间)
- locked(锁定状态)
在 Pishi 角色中,当绿旗被点击时,将 score 和 locked 设置为 0。
2. 让 Ball 跟随你的手指
添加一个 Ball 角色。这个小球将作为跟随你食指指尖的指针。
使用 HandPose X 和 Y 积木,并进行以下设置:
- Keypoint: 8(食指指尖)
- Hand number: 1
将 time 设置为 0 积木可以确保在新游戏开始时,Ball 能够立即开始追踪你的手指。
当你在摄像头前移动食指时,Ball 就会跟随它在舞台上的位置移动。
3. 添加 Fish
添加一个带有多种鱼造型的 Fish 角色。
当游戏开始时:
- 重置计时器
- 继续进行游戏,直到计时器达到 20 秒
- 检测 Fish 是否碰到了 Ball
当 Ball 碰到 Fish 时,将变量 locked 设置为 1。
然后,当 locked = 1 时,将 Fish 移动到 Ball 的 X 和 Y 坐标位置。
这样可以使 Fish 保持附着在 Ball 上,并在你移动手部时顺畅地跟随你的指尖。
4. 给 Pishi 喂食
在同一个循环内部,检测 Fish 是否碰到了 Pishi。
当它到达 Pishi 时:
- 将 locked 重新设置为 0
- 将分数增加 1
- 广播 message1
- 将 Fish 移动到一个随机位置
- 换成下一个 Fish 造型
将 locked 设置为 0 会将 Fish 从 Ball 上释放,以便它可以出现在舞台上的其他位置。
每当 Pishi 被喂食一次,score 就会增加,同时一条新鱼会出现在不同的位置。切换造型还会让 Pishi 看起来像是在吃不同种类的鱼。
5. 添加计时器
在游戏运行期间,不断将 Scratch 计时器的值复制到变量 time 中。
20 秒后,将变量设置为单词 FINISH 并广播 message1。
使用 FINISH 会告知 Ball 停止跟随玩家的手指,并告知 Pishi 游戏已经结束。
6. Make Pishi React
当 Pishi 收到 message1 时,短暂切换到 costume2 造型,然后返回到 costume1 造型。
如果游戏已经结束:
- 将 Pishi 移动到舞台中央
- 显示玩家的最终 score
现在,Pishi 每吃一条鱼都会做出反应,并在时间用完时公布 score。
🚀 试试你的项目!
点击绿色旗帜并允许摄像头访问。
然后:
- 将一只手放在摄像头能清晰看到的地方。
- 移动食指,直到 Ball 碰到一条鱼。
- 带着鱼移向 Pishi。
- 用鱼碰到 Pishi 即可得分。
- 在计时结束前,尽可能多地给 Pishi 喂鱼。
🤖 它是如何工作的?
HandPose 扩展可以追踪手上的关节点。
在这个项目中,它的运行逻辑如下:
食指指尖
↓HandPose 获取其 X 和 Y 坐标位置
↓Ball 移动到这些坐标位置
↓Ball 接触并带动 Fish 移动
↓Fish 到达 Pishi 处
↓score 增加
keypoint 8 代表食指指尖。HandPose 将其在摄像头中的位置转换为可以直接在 Scratch 舞台上使用的坐标。
💡 让它变得更好!
- 使用任意一只手控制游戏 使用 hand count block 检测摄像头中是否能看到一只或两只手。例如,可以使用一只手移动 Ball,当检测到两只手时显示一条奖励鱼。
- 添加手指手势 使用 distance between keypoints block 检测拇指和食指指尖是否靠近。这个手势可以让鱼冻结、激活磁铁,或者自动收集附近的鱼。
- 创建手部控制的难度等级 使用 angle between keypoints block 改变游戏难度。例如,旋转你的手可以让鱼移动得更快,或者减少剩余时间。
- 改善手部消失时的追踪效果 更改 when x/y not found return 设置。当摄像头无法检测到指尖时,可以让 Ball 停留在最后的位置,或者移动到安全位置。
- 添加更多鱼和特殊奖励 创建更多 Fish 造型或克隆体。添加一条价值 3 分的金色鱼,并让它只在检测到特殊手势时出现。
🔗 分享你的创作
完成你的项目了吗?更改 Fish、背景、计时器和计分规则,创建属于你自己的手指控制喂养游戏。
