-
覆盖的关键课题
介绍
可持续目标是联合国在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,当有些塑料垃圾被移除时增加一分。这部分可以在”塑料“角色里完成:

现在游戏已经完成了:

创意点子
我们有很多办法,让你可以在这个程序里面创建更多。这里有一些点子的例子:
-
添加更多野生生物或垃圾造型: 找出其他正在被这个问题伤害的海底野生生物,或者其他常见的垃圾种类,并把它们添加到游戏中,以便人们开始警惕。
-
塑料垃圾的速度: 要让游戏变得更有挑战性,你可以让垃圾以随机的速度下降,或让他们下降得越来越快。
-
C CreatiCode Teacher moved this topic from Draft on
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login