为孩子们准备的Scratch画笔项目:绘制五颜六色的图案

由 小石头编程 发表于 2024年04月25日
### 介绍 在本文中,我们将学到更酷的技巧,然后制作一个我最喜欢的 Scratch 项目:它能绘制五颜六色的图案,如果您设置得当的话,它看起来会很酷。 ![](https://www.codxz.com/media/upload/2024042516030583.png) ### 项目结果 ![](https://www.codxz.com/media/upload/2024042516033503.png) ### 资源获取 ![](https://www.codxz.com/media/upload/2024042517221275.png) 想要获取项目文件,可扫码关注“小石头编程”公众号,回复“**五颜六色的图案**”获取下载地址。 ### 能学到的知识 在这个项目中,我们可以学到以下知识: - 使用画笔工具 - 使用循环,以及更新循环中的变量 - 使用**重复执行直到**循环 - 使用询问块来获取输入值 - 使用可索引属性的多个列表 ### 项目制作 #### 1、使用画笔 你要制作的项目会用到 画笔工具:它能在精灵图移动的时候在其中心背后画一条线。现在让我们来学习这个工具吧! 新建一个Scratch项目,选择 Scratch 猫精灵,然后拖动一些你可能已经看到的块,直到看起来像这样: ![](https://www.codxz.com/media/upload/2024042516071775.png) 现在是测试画笔的时候了! 要在 Scratch 中使用画笔块,你需要添加 画笔扩展,点击左下角的 **添加扩展** 按钮,如下图所示: ![](https://www.codxz.com/media/upload/2024042516082149.png) 点一下 画笔 扩展就可以添加它。 ![](https://www.codxz.com/media/upload/2024042516083293.png) 然后画笔积木就会出现在代码菜单的底部。 ![](https://www.codxz.com/media/upload/2024042516084139.png) 从画笔部分中,选择**下笔**块并将其添加到程序的开头,如下所示: ![](https://www.codxz.com/media/upload/2024042516094336.png) 现在,点击绿色旗子几次,然后看看会发生什么。 如果你可以看到猫精灵后面的线条,则说明笔正在工作,你就可以用它来绘制出非常酷的图案。 首先,你应该移除掉精灵。 因为它会妨碍到绘图! 从外观中选择并添加隐藏块到程序的开头,精灵就会消失。 ![](https://www.codxz.com/media/upload/2024042516101844.png) 现在,你可以从画笔部分用另一个模块更改笔的颜色, 注意它与你看到的其他方块有些不同。 这是**将笔的颜色设置为**,如下所示: ![](https://www.codxz.com/media/upload/2024042516104848.png) 把将笔的颜色设为拖动到你的精灵面板,并将其卡进落笔块。 ![](https://www.codxz.com/media/upload/2024042516110378.png) 现在,单击颜色框(在上面的代码中为蓝色),然后选择一种颜色。 如果你已经单击绿色旗子来测试您的代码,你会注意到用笔绘制的图不会消失。 从画笔部分添加一个全部擦除 块到你的代码开头,如下所示: ![](https://www.codxz.com/media/upload/2024042516113287.png) #### 2、绘制图案 现在,你有一个可以画一条线的程序,但它也只能画一条线。 这样有点呆板! 你可以使用** 重复执行** 循环来一遍又一遍地绘制一些东西,但是你的画很快会超出舞台边界。 所以你需要用到一个不同类型的循环,叫做**重复执行直到**,你可以从控制部分找到它。 这种类型的循环会反复执行某些操作,直到满足对/错条件。 从控制中拖一个重复执行直到块出来 ,然后放置**移动** 和 **左转** 块,就像这样: ![](https://www.codxz.com/media/upload/2024042516124843.png) 现在,单击绿色旗子几次来运行该程序,然后看看会发生什么。 你会注意到两件事:笔总是从在舞台中间画一条线开始,而它并没有在边缘处停止。 > **为什么笔会这么做?** > 笔总是从中间的方向开始绘制,因为在 落笔后第一个运行的运动是移到 x:0 y:0。 因此,笔在移到舞台中央的过程中会画一条线。 >笔不会停在舞台的边缘,因为你还没有告诉重复执行直到循环检查的条件。 这意味着永远无法满足循环停止的条件,因此它将不断运行。 这意味着,这个循环就像重复执行循环一样工作。 把 **移到 x: 0 y: 0** 块挪到 画笔 块之前,并从画笔部分拿一个**抬笔** 块到右端代码的开头。 是时候修复你的重复执行直到循环了,以使其在你需要时停止。 你得知道(隐藏起来的)精灵是否接触到了舞台边缘,为此你需要侦测 工具中的 碰到?块。 添加**碰到?**块到你的重复执行直到循环,然后选择舞台边缘。 然后循环运行重复执行直到 (隐藏起来的)精灵触及舞台的边缘。 ![](https://www.codxz.com/media/upload/2024042516154527.png) 更改移动块中的步骤数为5 ,并在测试之前检查程序是否与此程序匹配: ![](https://www.codxz.com/media/upload/2024042516160452.png) 如果现在运行代码,你将看到钢笔绘制的图形停留在舞台上。 不仅如此,你的程序还变成了画圆的程序! 此处发生的情况是,这些15度的转弯最终加起来为360度,因此你的笔旋转了一个完整的圆圈。 你将稍微更改它的移动的方式,使它每次都稍微多走一步,这样它就会螺旋式向外移动。 为此,你将需要一个变量 。 变量基本上就是一种带有标签的位置,在位置中存储数字或其它你关心的信息。 你可以在 **变量** 部分中创建它们。 创建一个名为**步骤**的变量,然后添加一个 将 **步骤 设为 0** 块到程序的开头。 ![](https://www.codxz.com/media/upload/2024042516165556.png) 然后用步骤块替换移动块中的5,之后加入将**步骤 增加 1**块作为循环的一部分: ![](https://www.codxz.com/media/upload/2024042516172513.png) 你觉得在循环中的不同位置放置将**步骤 增加 1**块会不一样吗? > **以正确的顺序放置代码** > 当你决定哪个命令放置方块时,想想每个方块做什么以及你想要你的代码做什么。 > 在这种情况下,你想要笔移动,然后一遍又一遍地转动。 每次执行此操作时,你都希望再移动一个额外的步骤。 > 因此,将将 **步骤 增加** 块放置在 **移动**块 之后 是有意义的。 然而在移动后,笔先转动再改变步骤数, 还是先改变步骤数再转笔都不重要。 现在运行程序,并尝试更改**右转**的度数(尝试76和120 )! #### 3、要求输入 好的,这已经很酷了,但是每次你想要绘制不同的图案时都必须编辑代码有点无聊。 让程序询问你要使用的值不是很好吗? 你可以这样做: 首先,前往变量部分,并创建 **度数** 和 **增加** 的变量。 现在将新的变量添加到你的代码中,例如: ![](https://www.codxz.com/media/upload/2024042516205056.png) 现在,你需要询问这两个变量的值并存储它们。 你可以使用一个叫做 **询问并等待** 的 侦测 块,你可以在其中输入问题。 拉取**询问并等待** 块进入你的精灵图面板,然后将问题更改为我应该多加多少步? 然后将其添加到你的程序,就在你设置步骤 为0之后,像这样: ![](https://www.codxz.com/media/upload/2024042516212155.png) 现在,你的程序能询问问题了,你还需要它记住问题的答案! Scratch 有一个名为**回答** 的特殊变量,它存储收到的最新答案。 您可以在侦测模块中找到此变量。 使用 变量 中的 **将变量设为** 块,并取值为 **回答** 并将其存储在变量 **增加**中,如下所示: ![](https://www.codxz.com/media/upload/2024042516220122.png) 现在,对度数进行相同的操作,询问我应该转多少度?并在度数中存储回答的值。 ![](https://www.codxz.com/media/upload/2024042516223955.png) 现在检查你的程序,如下所示,并使用不同的输入数字运行几次。 写下答案来制作出最酷的图片。 你会在稍后的步骤中需要他们! ![](https://www.codxz.com/media/upload/2024042516225787.png) #### 4、更酷的线条 是时候添加颜色了! 现在,你的线是一种颜色,但是画笔中有积木可以改变它的颜色。 同时加上正确的运算块,你甚至可以随机更改颜色! 更改画笔颜色的方块是 通过**将笔的颜色设为**,如下所示: ![](https://www.codxz.com/media/upload/2024042516234005.png) 将这个块放入你的重复执行直到循环,如下所示: ![](https://www.codxz.com/media/upload/2024042516240800.png) 虽然这很酷,但它是可预测的,没有太多变化。 如果在其中添加一个随机数,可以使其更有趣,颜色也会随机变化。 将随机数 运算 块放入 将笔的颜色设为 块中,并选择一些值。 试着用**1**和**100**开始。 ![](https://www.codxz.com/media/upload/2024042516244027.png) 尝试再次运行它,就能观看随机的彩虹! #### 5、随机呈现整个内容 你实际上可以使用随机数来使整个程序反复运行,每次都更改模式! 它会看起来有点像1990年代的屏幕保护程序...... 你需要进行一些更改才能实现此目的。 首先你需要随机设置 增加 和 度数 变量,而不是向用户询问。 所以你需要更改你的一些代码块。 从你的代码中删除询问逻辑并使用随机的数字块替代它。 ![](https://www.codxz.com/media/upload/2024042516253779.png) 如果现在运行程序,你会发现它确实绘制了一个随机模式,但是只有一次。 你认为为什么会这样? 这是因为循环会在运行到到达舞台边缘时停止。 你需要在当前代码块之外再添加一个循环(重复执行)块,以使其不断重复。 只需从控制部分拖动一个,然后将其他所有的代码都添加进去。 ![](https://www.codxz.com/media/upload/2024042516261698.png) 现在,您真的有一些很棒的东西可以看! 但是,您可能会注意到,计算机会时不时地绘制出一些看起来很糟糕的东西。 这是因为其中一些变量的某些数字只是不好的选择,其中某些数字组合也是不好的选择。 #### 6、使用列表完善 还记得前几步我告诉过你可以在增加和度数中写下一些你喜欢的值, 那些提供了好看绘图的数字? 如果你不记得了,那也不要紧:您可以看着随机程序运行一段时间,然后写下可以产生出色结果的组合。 你将要教Scratch这些组合的值,以便它可以使用它们来制作精美的图片! 为此,你需要一个列表 。 你将在变量部分找到相关模块。 就像变量一样,你需要先创建一个列表! 点击建立一个列表 ,然后输入“度数表”作为名称。 ![](https://www.codxz.com/media/upload/2024042516303849.png) 你的列表(目前为空)将出现在舞台上,并且你会在变量 中看到一堆框。 ![](https://www.codxz.com/media/upload/2024042516325337.png) 制作另一个叫做**递增列表**的列表。 现在,通过单击在列表的底部的小加号(+ ),添加你喜欢的第一对值增加和度数,每个值都要放入正确的列表中。 再次执行此操作以添加第二对值。 现在就足够了 — — 稍后你会添加你喜欢的其他值对! ![](https://www.codxz.com/media/upload/2024042516334736.png) 确保在**度数表** 和 **递增列表** 中, **度数** 和 **增加** 处于同一位置并能一起工作。 它们需要在那里,以便你的程序能够使用他们的位置再次匹配它们! 现在你已经有了列表,你只需要获取代码即可阅读并循环它们! 为此,你将使用一个新变量**计数器**,此外还需要一个 **如果 那么** 控制块。 > **递增是什么意思?** > 要增加某些东西就意味着为它添加一些东西。 > 你将使用变量作为计数器,以跟踪你在列表中所处的位置。 要在列表中移动,你将持续给计数器递增 1 (添加1),直到你到列表末尾。 创建一个名为**计数器**的新变量,然后将代码更新为以下形式: ![](https://www.codxz.com/media/upload/2024042516373131.png) 注意新的块: 1. 在所有循环之外设置**计数器**为0。 2. 检查存储在**计数器** 中的数字是否为列表长度,如果是,请设置**计数器**为0。 这意味着此变量将永远是列表中一个位置的数字,且不会比这更大。 3. 添加1 到 **计数器**. 4. 从**递增列表** 中选择位于计数器所描述的位置的项目,然后将其放在变量**增加**中。 对于**度数表** 和 **度数** 变量做同样的操作。 这样就完成了! 坐下来,看着你的程序不断循环绘制可爱的图案! 如果你想要添加更多的模式,你可以在两个列表中添加更多的数字对并重新启动程序。