二维 - 可持续目标14 - 海底塑料污染(难度:2)
-
覆盖的关键课题
介绍
可持续目标是联合国在2015年认证的17个目标。它们是每个人都需要共同努力的代办目标。
这个教程将会教导如何移除海洋的塑料污染,而这与第十四个目标"保护水下生物"。
每年都会有大量的塑料垃圾流入海洋,这会威胁到水下的生物。在这个程序中,你将会创建一个游戏来捕捉塑料垃圾。如果任何的塑料垃圾或者网触碰到任何海洋生物,那么游戏就会结束。
步骤 1 - 改编一个模板项目
首先,请点击这个链接来打开程序模板:
https://play.creaticode.com/projects/2346d59cdaba3485820986ec
点击“改编”按钮来创建你自己的改编项目。需要注意的是,你需要登入才能够改编项目。
这个项目包含三个角色以及一个海底背景。
- “野生生物”角色包含鱼类以及其他海底野生生物的8个造型。.
- “塑料”角色包含塑料垃圾的四个造型:塑料袋、塑料杯、塑料瓶以及塑料碟。
- “网”造型包含一个可以用来捕捉塑料垃圾的网子。
步骤2 - 重复地复制野生生物
首先,我们将会处理鱼的角色。在游戏开始之后,我们需要一直每三秒复制一个新的野生生物:
当你运行程序之后,你不会看见任何新的复制体,因为他们都和原有的角色重叠了。所以你需要把原有的角色拖拽到新的位置来看见复制体。
步骤 3 - 把克隆的野生生物移动到左边
所有的野生生物会从左边移动到右边,所以我们会把他们的起始X位置设置成-220。要让他变得有趣,我们可以为它们设置一个随机的Y位置,但我们需要确保他们出现在舞台的下半部分。因此,我们可以使用-50到-170之间的数值。
现在,我们可以看见复制体出现在左边:
步骤 4 - 切换到一个随机的造型
要让每个新的复制体展现一个不一样的造型,我们可以使用“切换造型”编程积木。需要注意的是,这个编程积木不仅允许你从列表中选择,也可以使用数字来作为它的输入方式。所以我们可以使用“随机选取”编程积木来产生一个1到8之间的随机数字。举个例子,当数字会是1时,那么这个复制体将会切换成造型号码1,也就是“金鱼”。
现在,我们每次都会得到一个随机的野生生物:
步骤 5 - 隐藏原有的角色
原有的角色一直都被展示在舞台上。我们可以简单地隐藏它,以便所有的游戏逻辑都由复制体完成。需要注意的是,当原有的角色被隐藏起来时,它的复制体也会被隐藏,所以我们需要在复制体被生成之后显示它们:
现在,我们只会看得到复制体,并且把原有的角色隐藏起来:
步骤 6 - 让野生生物游泳
在每个复制体被生成之后,我们会让它们游到右边。我们可以一直地 把它们的X位置数值加1:
现在,我们会在海底得到一些正在游泳的野生生物:
步骤 7 - 删除复制体
当一个复制体抵达舞台的右边时,我们需要删除它。一个很简单的方法就是使用就是使用“触碰舞台边缘”编程积木,就像这个样子:
虽然如此,这个方法会有一些问题,因为复制体会在它们被生成的时候触碰到左边的舞台边缘,所以它们会直接被删除掉。要解决这个问日,我们可以检查复制体的X位置是否接近右边的舞台边缘:
现在,我们可以看见克隆体会在它们抵达右边的舞台边缘时被删除:
步骤 8 - 触碰网则游戏结束
在这个游戏中,玩家将会操控网来捕捉塑料垃圾,并且网不应该伤害任何野生生物。因此,一旦网意外触碰到任何一只野生生物,那么游戏就会结束。为了能够结束游戏,我们可以添加一个新的名为“游戏结束”的变量。
- 当游戏开始时,我们把“游戏结束”设置为0,这意味着游戏还没有结束。
- 当野生动物的任一克隆体碰到“网”角色时,我们把“游戏结束”设置为1。
这是一个“游戏结束”变量的简单测试。它从0开始,并在鱼接触到网时被设置成1。
步骤 9 - 重复直到游戏结束
当游戏结束时,我们应该停止创造新的克隆体,并冻结现有的克隆体。我们可以使用“重复执行直到”编程积木来替代“重复执行”编程积木,以便复制会在“游戏结束”变量变成1的时候停止。
当我们测试游戏时,所有的复制体会在第一条鱼接触到网时被冻结:
步骤10 - 把编程积木复制到塑料角色
现在,让我们开始为“塑料”角色进行编程。你会发现,因为塑料角色也创建很多会在舞台上移动得随机复制体,所以我们能重复使用野生动物角色中的大部分程序。关键的差异是移动的方向。
因此,我们可以复制“野生动物”角色中的3个堆栈的编程积木到“塑料”角色中。
步骤 11 - 修复塑料角色中的复制编程积木
虽然复制大量的编程积木感觉很不错,但是你也需要非常地小心,因为**程序中的大部分问题都来自于”复制粘贴“**。
我们需要小心的改变新的编程积木,以便塑料角色的复制体会随机地移动到底。这是一些你需要做出的改变:
- 让“塑料“角色每秒生成一个复制体,以便我们可以得到更多的塑料。
- 复制体只可以从四个造型中选择。
- 复制体应该去到舞台的顶端,并且X位置随机。
- 复制体应该向下移动,每一步的Y位置都减少两个单位。
- 如果复制体的Y位置低于特定数值,比如-150,那么我们将会删除它。
作为测试,现在我们将会得到随机的野生生物和随机的塑料垃圾:
步骤12 - 删除塑料垃圾的时机
我们也需要改变删除塑料角色复制体的方式。我们不应该在垃圾抵达底部的视乎删除它,因为真正的塑料垃圾会留在海洋的底部。而且,当塑料切除到”网“角色的时候,这意味着网已经收集了这个垃圾,所以我们应该删除这个复制体。
现在,塑料垃圾会在他们接触到”网“角色时消失:
步骤 13 - 如果垃圾接触野生生物,游戏结束
玩家的目标是为了预防塑料垃圾伤害野生生物,所以我们应该在垃圾接触任何的野生生物时把”游戏结束“设置成1:
作为测试,当野生生物接触掉下来的垃圾时,游戏结束:
步骤14 - 点击以移动网
现在,让我们改变”网“角色。我们可以使用很多方式来让玩家控制”网“角色,以移动它。让我们挑选一个简单的方法:当玩家点击舞台的任一地方时,我们把网移动到那里。我们可以使用"当按下鼠标按钮时”编程积木。
需要注意的是,它需要我们创建两个新的变量“x"以及”y“,并且我们需要从下拉式选项中选择他们。
现在,游戏可以通过控制网的方式来进行:
步骤 15 - 总共分数
因为所有游戏都会有一个努力的目标,让我们在玩家移除一个垃圾物体时奖励他们一分。我们可以添加一个新的变量”分数“,在游戏开始时把它设置成0,当有些塑料垃圾被移除时增加一分。这部分可以在”塑料“角色里完成:
现在游戏已经完成了:
创意点子
我们有很多办法,让你可以在这个程序里面创建更多。这里有一些点子的例子:
-
添加更多野生生物或垃圾造型: 找出其他正在被这个问题伤害的海底野生生物,或者其他常见的垃圾种类,并把它们添加到游戏中,以便人们开始警惕。
-
塑料垃圾的速度: 要让游戏变得更有挑战性,你可以让垃圾以随机的速度下降,或让他们下降得越来越快。
-