为孩子们准备的有趣的Scratch游戏:太空战争

由 小石头编程 发表于 2024年04月17日
### 介绍 在这个项目中,我们将学习如何创建一个太空战争游戏,游戏中我们必须拯救地球免受太空怪物的侵害。 ### 游戏展示 点击绿色旗帜开始游戏,可以使用左右方向键控制飞船,使用空格键来射击。通过射击飞行的太空河马,尽可能多的得分。如果飞船被河马击中,或者被蝙蝠扔下的橙子击中,飞船将失去一条命。[点我下载资源](https://www.codxz.com/media/project/CloneWars.sb3) ![](https://www.codxz.com/media/upload/2024041709164665.png) ### 可以学到的知识 1、如何使用键盘控制角色移动 2、如何克隆角色来制作副本 3、如何使用“广播”和“接收消息”来传递消息。 ### 制作一个太空飞船 游戏中有一个宇宙飞船角色,宇宙飞船可以被左右按键控制,添加一下代码: ![](https://www.codxz.com/media/upload/2024041709440021.png) x轴是从舞台的左侧到右侧。这意味着当我们减少飞船角色的x坐标值时,它将往左移动,当我们增加x坐标值时,飞船将往右移动。 现在单击绿色旗帜测试我们的项目,检查是否可以按箭头键使我们的飞船左右移动。 ### 闪电!!! 为了打败怪物,我们需要飞船可以发射闪电束! 从角色库中选择Lighting,如下图所示: ![](https://www.codxz.com/media/upload/2024041709474172.png) ![](https://www.codxz.com/media/upload/2024041709471645.png) 在游戏开始时,在飞船发射激光闪电之前,闪电角色应当是隐藏起来的。 ![](https://www.codxz.com/media/upload/2024041709483943.png) 此时,闪电比宇宙飞船还要大! 在闪电精灵已有的代码下,添加一些代码块使角色变小并向将其上下翻转。 ![](https://www.codxz.com/media/upload/2024041709495667.png) 现在它看起来像是尖尖的尾巴-首先从飞船中射出。 下面我们要实现,按下空格键时,要创建一个闪电的克隆,在宇宙飞船的角色中,添加如下代码: ![](https://www.codxz.com/media/upload/2024041709521965.png) 每当游戏创建一个“闪电”角色克隆时,克隆的角色就会出现并且向上移动直到到达舞台顶端。 之后克隆就会消失。 将此代码添加到闪电角色,从而使其克隆向上移动,直到他们碰到舞台的边缘,然后他们将被删除。 ![](https://www.codxz.com/media/upload/2024041709560533.png) 现在我们可以按空格键来测试闪电是否被正确发射。 ### 改进:优化闪电 当我们一直按着空格键时,会发生什么? 会一直发射闪电!!! 我们需要添加一个等待来优化发射速度,添加如下代码: ![](https://www.codxz.com/media/upload/2024041709582622.png) ### 会飞的太空河马 现在,我们将添加许多试图破坏飞船的飞行河马。 在 Scratch 库中用“Hippo1” 图像创建一个新的角色。 使用收缩工具使河马角色和飞船差不多大小。 ![](https://www.codxz.com/media/upload/2024041710002072.png) 然后设置河马的旋转方式为左右旋转,点击河马角色,点击方向,在弹窗中选择中间的左右旋转,如下所示: ![](https://www.codxz.com/media/upload/2024041710015694.png) 在游戏刚开始时,河马并不会立刻出现,在河马角色上添加一下代码: ![](https://www.codxz.com/media/upload/2024041710034989.png) 添加一些代码到舞台,每隔几秒钟创建一个河马克隆,代码如下: ![](https://www.codxz.com/media/upload/2024041710052589.png) 当一个新的克隆河马出现时,都应该出现在随机位置上,并且每个克隆都应该有随机的速度。 我们创建一个变量,名为“速度”,只应用河马角色,首先选中河马角色,然后点击变量,新建一个变量,如下: ![](https://www.codxz.com/media/upload/2024041710094074.png) ![](https://www.codxz.com/media/upload/2024041710095433.png) 当河马被克隆并启动时,选择随机的速度和起点,然后在屏幕上显示克隆,代码如下: ![](https://www.codxz.com/media/upload/2024041710120308.png) 现在测试代码,是否每隔几秒钟出现一个新的河马? 目前河马还是静止的,每个河马都应该随机移动,直到被闪电击中。 要做到这一点,在河马角色已有的的代码脚本中的代码块下面附上此代码: ![](https://www.codxz.com/media/upload/2024041710150314.png) 再次测试我们的代码。应该看到每隔几秒钟就会出现一个新的河马克隆,并且每个克隆应以不同的速度移动。 ![](https://www.codxz.com/media/upload/2024041710153888.png) 现在测试飞船的激光大炮。如果闪电击中河马,河马会消失吗? ### 爆炸的宇宙飞船!!! 当河马碰到您的飞船时,飞船应爆炸! 选择宇宙飞船角色,并将其造型命名为“正常”。画出另一只爆炸飞船的造型,并将新造型称为“命中”。 在这里,我们选择太阳作为飞船的爆炸造型,如下图所示: ![](https://www.codxz.com/media/upload/2024041710193406.png) 然后使用工具稍微调整了下太阳的形状 ![](https://www.codxz.com/media/upload/2024041710211601.png) 在我们的宇宙飞船角色中添加一些代码,以便在游戏开始时显示“正常”造型,并在触碰到河马时切换为“命中”造型: ![](https://www.codxz.com/media/upload/2024041710245721.png) 测试代码,当飞船与河马相撞时,宇宙飞船会切换成“命中”的造型吗? ### 消失的河马 当飞船爆炸时,所有河马都应消失,以便游戏中的玩家可以重新开始。 将代码添加到宇宙飞船角色中,在宇宙飞船碰到一只河马时使它广播 “击中”的消息。 ![](https://www.codxz.com/media/upload/2024041710271250.png) 所有的河马角色克隆都将收到“被击中”的消息, 并且可以指示他们在飞船被击中时消失,将此代码添加到河马角色: ![](https://www.codxz.com/media/upload/2024041710285225.png) 选择测试代码,检查当河马击中飞船后,会不会所有的河马都消失? 飞船爆炸后,新的河马克隆出现,但飞船仍会爆炸!宇宙飞船被击中后需要自行重置。 在飞船角色的代码末尾添加一个等待代码块,以在河马再次出现之前创建一个小暂停。 然后添加一个重复执行代码块包含你所有的代码,让代码重复运行。 ![](https://www.codxz.com/media/upload/2024041710303615.png) ### 太空蝙蝠 为使我们的游戏变得更有难度一点,我们将要创建一个向飞船扔橙子的蝙蝠。 ![](https://www.codxz.com/media/upload/2024041710324560.png) 添加一个蝙蝠“Bat”角色并将其旋转风格设置为 左右旋转,然后让蝙蝠角色在舞台顶部从左至右移动重复执行。 ![](https://www.codxz.com/media/upload/2024041710351163.png) 现在来测试下代码,看蝙蝠能不能正常工作? 如果我们看一下蝙蝠的造型,我们会发现它有四种不同的造型,我们可以通过切换造型让它在移动时拍打翅膀,代码如下: ![](https://www.codxz.com/media/upload/2024041710365464.png) 现在我们让蝙蝠扔橘子,从角色库中选择“Orange”角色,在游戏开始后,蝙蝠要不停的扔橘子,不过中间要间隔一定的时间,我们给蝙蝠添加一下代码: ![](https://www.codxz.com/media/upload/2024041710400019.png) 现在我们给橘子添加代码,当橘子被克隆后,每个克隆都从蝙蝠角色上开始向舞台底部掉落。 ![](https://www.codxz.com/media/upload/2024041710421258.png) 将以下代码也添加到橙子上,以便当一个橙子的克隆击中太空飞船时, 克隆也消失,让玩家有机会重置: ![](https://www.codxz.com/media/upload/2024041710430864.png) 现在要修改飞船代码,当橙子碰到飞船时,也会被击中,代码如下: ![](https://www.codxz.com/media/upload/2024041711051709.png) 现在测试我们的游戏。如果飞船被正在坠落的橙子撞到,会发生什么情况? ### 挑战:完善我们的游戏 让孩子们去继续完善我们的游戏吧!!! 下面是一些完善的建议: 1、添加“生命”变量,比如游戏开始时,有3条生命,当宇宙飞船碰到河马或者橘子时失去1条生命。当生命耗尽时,游戏结束。 2、添加游戏结束画面。 3、添加医疗包,当医疗包出现,宇宙飞船碰到医疗包时,恢复1条生命。 ![](https://www.codxz.com/media/upload/2024041711114333.png) 4、添加得分,击落一个河马时,得一分,当分数达到100时,出现更多的河马。 5、添加一些浮石,飞船需要避开浮石。 ![](https://www.codxz.com/media/upload/2024041711125536.png) 6、控制飞船可以向前和向后移动。