为孩子们准备的碰撞游戏:护送猫咪

由 小石头编程 发表于 2024年05月04日
### 介绍 在这个项目中,您将创建一个游戏,在游戏中您需要引导猫注意安全,并且不能让猫掉入任何深渊里! 点击并拖动鼠标来用铅笔画一条线,您的目标是通过创建一条通往出口的安全路径来阻止猫咪掉入洞中。 ![](https://www.codxz.com/media/upload/2024050416490618.png) ### 资源获取 ![](https://www.codxz.com/media/upload/2024042517221275.png) 想要获取项目文件,可扫码关注“小石头编程”公众号,回复“**护送猫咪**”获取下载地址。 ### 能学到的知识 在这个项目中,我们可以学到以下知识: - 如何使用**重复执行**循环来不断生成移动的猫咪 - 如何使用**重复执行直到**循环来确保猫咪沿着直线移动 - 了解**刚体**以及如何在游戏中应用**刚体**(物理引擎) - 如何克隆角色 ### 项目制作 #### 1、资源准备 在本项目中,会用到一个背景图和一个门,资源如下: ![](https://www.codxz.com/media/upload/2024050417012887.png) ![](https://www.codxz.com/media/upload/2024050417012896.png) #### 2、画线 首先,我们需要添加画笔扩展,点击Scratch左下角的扩展图标,如下所示: ![](https://www.codxz.com/media/upload/2024050416563676.png) 点击画笔扩展,如下: ![](https://www.codxz.com/media/upload/2024050416570009.png) 在代码区域,就出现了画笔扩展,如下所示: ![](https://www.codxz.com/media/upload/2024050416572062.png) 然后我们添加一个角色,选择"Pencil"角色,如下所示: ![](https://www.codxz.com/media/upload/2024050417024402.png) 将角色名称修改为“笔”,然后添加代码,将笔的颜色设置与舞台上的障碍物相同的蓝色。 ![](https://www.codxz.com/media/upload/2024050417035790.png) 要选择一种颜色,请在 **将笔的颜色设置为** 积木块中单击颜色块,在打开的弹窗中选择滴管工具并移动到舞台中的障碍物上,来获取正确的颜色。 添加代码来让笔随着鼠标移动,如下: ![](https://www.codxz.com/media/upload/2024050417061734.png) 测试代码,看画笔是否跟随鼠标移动。 下面我们添加代码,告诉画笔,如果按下鼠标按钮,则可以在舞台上画一条线: ![](https://www.codxz.com/media/upload/2024050417075972.png) 测试代码,您应该能够单击并拖动鼠标在舞台上绘制蓝色的线。 ![](https://www.codxz.com/media/upload/2024050417082845.png) 您可能会看到一个蓝点始终出现在舞台的右上角(在上图中被圈出)。 这是因为,当您单击绿色标志开始游戏时,您按下了鼠标,因此笔立即开始绘制。 为了阻止这种情况发生,在代码块开始的部分添加 **抬笔** 和**等待 1 秒** 积木块,放在 **重复执行** 积木块前面。 ![](https://www.codxz.com/media/upload/2024050417150929.png) #### 3、生成猫咪 您需要源源不断的生成猫咪来让玩家画出路径引导猫咪直到出口。 创建一个“猫咪”的角色,我们选用默认的猫咪角色,然后添加代码,每3秒克隆一个猫咪: ![](https://www.codxz.com/media/upload/2024050417193054.png) 我们需要将猫咪放在画布上方,这样猫咪就可以从上方掉落下来。坐标如下: ![](https://www.codxz.com/media/upload/2024050417210897.png) 如果您现在运行程序,舞台上什么也不会发生。 要检查是否每 3 秒克隆了一个新的猫咪精灵,我们需要让猫咪显示出来并从天空中掉下来。 添加代码,当**作为克隆体启动**时,它应该显示,然后 碰到颜色 为舞台上绘制的蓝色时,要修改猫咪的y坐标,不让猫咪继续下沉,这类似于物理引擎中的**刚体**。 ![](https://www.codxz.com/media/upload/2024050417235224.png) 单击绿色小旗标志时,您应该看到每三秒钟一只新的猫咪从舞台的顶部掉下来。 蓝色的地板上应该有一大堆的猫咪 ![](https://www.codxz.com/media/upload/2024050417241606.png) #### 4、让猫咪动起来 一旦猫咪到达地面,它就应慢慢向右边走。 添加代码到 当作为克隆体启动时 ,使猫咪精灵 **移动 10 步** 并且 每隔 0.1 秒在猫咪精灵的两个造型之间切换,来让猫咪看起来像在走路。 ![](https://www.codxz.com/media/upload/2024050417250340.png) 按下绿色小旗标志,然后检查猫现在是否沿着底部的蓝色平台移动。 如果您在间隙上通过画线架起一座桥,来让猫咪可以一直走到舞台的右侧,您会发现它们最终被困在右墙中。 ![](https://www.codxz.com/media/upload/2024050417253839.png) 删除 **重复执行** 循环,替换为一个 **重复执行直到碰到舞台边缘** 的循环积木块。 当猫咪到达舞台边缘时,它应该消失。 ![](https://www.codxz.com/media/upload/2024050417260758.png) 按下绿色小旗标志,并检查猫咪到达舞台边缘时是否消失。 您可能会注意到,如果猫掉入洞中,它们不会消失,而会卡在底部。 这是因为他们不断试图向下下滑。 这是代码的一部分,它告诉猫继续跌落,直到它碰到蓝色: ![](https://www.codxz.com/media/upload/2024050417264248.png) 但是,在洞中,猫永远无法到达蓝色,因此它会一直被卡住。 向此循环添加更多块,重复执行直到碰到颜色蓝色 或 碰到舞台边缘。 这样,如果精灵到达舞台的边缘,它将停止尝试掉落。 ![](https://www.codxz.com/media/upload/2024050417282839.png) #### 5、让猫咪沿着线行走 您可能会注意到,如果您在两个平台之间画了一座稍微低一些的桥, 或者一条向上倾斜的直线,猫最终会在平台或线上穿行而不是走在它们上面! ![](https://www.codxz.com/media/upload/2024050417291127.png) 在猫咪精灵的代码中,在 **下一个造型** 积木块之前添加另一个循环。 这一次,循环应该告诉猫咪**上移 2 步**直到它不触碰蓝色。 ![](https://www.codxz.com/media/upload/2024050417294740.png) 单击绿色小旗标志,然后尝试绘制一条向上倾斜的线。 请检查您的猫是否跟随这条线。 #### 6、猫咪成功离开 游戏的目标是通过绘制一条路径引导猫咪保持安全,这样他们就可以到达门型出口。 创建一个 **分数** 变量以跟踪有多少只猫到达了门口。 添加代码,每次当有猫咪到达门口时,将分数 增加 1。 同时在 当绿旗被点击 将 分数 设为 0。 ![](https://www.codxz.com/media/upload/2024050417320502.png) ![](https://www.codxz.com/media/upload/2024050417321134.png) 添加更多代码,以便当猫咪精灵到达门口时,发出 “meow” 的声音,然后消失。 ![](https://www.codxz.com/media/upload/2024050417324447.png) #### 7、挑战:更多的障碍 目前,游戏很容易获胜。 您能想到一些想法使这个游戏变得更难吗? - 添加更多背景不同的平台设计。 - 根据显示的背景移动门的位置。 - 添加更多的精灵作为移动的障碍。 也许可以添加一些来回游走的狗或其它障碍物物来让猫咪躲避? - 仅允许玩家使用有限数量的“墨水”在游戏中画线。 您可以通过创建一个计时器变量来跟踪使用了多少“墨水”,该变量记录了按下鼠标的时间。 - 创建一个精灵以显示玩家剩余的墨水量。