使用可教机器在 Scratch 中进行简单的接球游戏

使用可教机器在 Scratch 中进行简单的接球游戏

让我们在 使用 可教机器 . Scratch 是一个适合所有人的编码平台,由麻省理工学院媒体实验室创建。您可以制作很酷的游戏、动画、艺术和许多很酷的东西 + 超级简单!

Google 的 Teachable Machines 是一个了不起的工具,它使人们能够创建和使用机器学习 (ML) 模型。目前,它提供了三种类型的机器学习模型——图像分类、音频分类和姿势分类(Posenet)。

我们将使用 Posenet 来控制我们的角色为我们的游戏捕捉掉落的水果。我们将把我们的游戏称为 Paetoo! (在印地语中,这意味着喜欢吃的人)。

我们的最终游戏将如下所示:

The character is controlled using the pose. It can be moved Left or Right to catch the fruit according to my body movement.

游戏可以分为以下几个步骤:

  1. 选择一个角色并创建其行走动画
  2. 控制角色移动
  3. 从顶部随机掉落水果
  4. 收获果实并得分
  5. 使用 Teachable Machine Posenet 添加字符控制(用于我们的最终输出)

在用姿势控制我们的角色之前,让我们创建一个基本的键盘控制游戏,如下所示:

Keyboard-controlled catch game example.

第 1 步:选择角色及其行走动画

选择您喜欢的任何动画精灵。你也可以给它一个名字。我选择了 Pico Walker 并将精灵命名为“Paetoo”。将其放置在 y = -109 位置。

Selecting a walking sprite with animation from the Sprite pane in Scratch

这个精灵有四种用于行走动画的服装

Sprite costumes for animation

选择 Pico walker sprite 并使用以下代码为角色创建行走动画:

Use this code block to create a walking animation

接下来,我们可以创建一个用于行走的块,每当角色使用键盘上的箭头键移动时都会调用该块。

步骤 2:控制角色移动

这是放大格式的角色移动代码。 确保将其与选定的角色精灵一起使用(在我的情况下为 Pico Walker)

The code block for controlling the character movement using arrow keys

我尝试使用“move__”块来控制角色的移动,但它导致了对角线移动。因此我使用了“change x by__”块。

第 3 步:从顶部随机掉落水果

选择另一个精灵,比如说一个食物,它会从顶部掉下来并被角色抓住。我选了一个草莓。这个草莓会从随机位置掉下来,角色必须移动才能接住它。

我们可以使用随机函数让草莓出现在随机位置,并将 y 轴设置为 180。根据 划痕坐标系 ,Y 位置的范围是 -180 到 180。我们希望水果落下,到达底部时消失,然后从随机顶部位置重新出现。可以通过以下代码实现。 选择此代码的食物精灵 (我在这里使用草莓精灵)。

Falling strawberry

接下来,我们要感觉去草莓摸角色。我们将为此使用感测块。

Sensing when the strawberry touches the character (Pico Walker aka Paetoo)

The code block for sensing when strawberry touches the character. Make sure to select strawberry sprite for this code block.

接下来,我们将创建一个名为 Score 的变量。并选择它旁边的刻度线以将其显示在主输出上。

Adding a variable named Score

每次代码开始时它都会被初始化为零,每当草莓碰到字符时它就会加一。因此上面的代码块变成:

Adding Score in the game

第 5 步:使用姿势控制角色

在可示教机器中,选择 Pose 项目选项:

Select Pose Project

训练模型。我创建了三个类(中、左、右)。步骤很简单。创建一个类,并训练模型。训练的输出如下所示:

Training the Posenet model in TM.

接下来,我们将导出此模型并复制 url。

从头开始,添加 Teachable Machine 扩展。

将使用模型块拖到主程序中,并将if条件中的“keypressed”替换为“prediction is___”块

Use TM blocks in code

粘贴 Teachable Machine 中的 URL 并等待单击标志事件后感叹号变为绿色。

Exclamation mark to green arrow indicates that the teachable machine model has model is loaded

你完成了!

Final Output!!!

在此处下载最终代码: https://drive.google.com/file/d/1VC65WmJ3gGcdvHu9lkuZYlPfT0dVVass/view?usp=sharing

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/7590/15190108

posted @ 2022-09-01 08:16  哈哈哈来了啊啊啊  阅读(147)  评论(0编辑  收藏  举报