少儿编程网Scratch视频教程:塔防游戏(四)

欢迎来到scratch视频教程,塔防游戏第四节。这一节我们将要为敌人添加一些列表,我现在不会详细介绍它们,因为它们将在下一节视频中使用。

·先修改一下我的错别字,再把角色1重新命名为敌人。

·让我们转到变量,开始创建列表。创建一个列表,命名为:敌人x,用来存放敌人的x坐标。创建第二个列表,命名为:敌人y,存放敌人的y坐标。第三个列表:敌人进度。创建第四个列表,命名为:敌人ids,存放每个敌人的ID,即它的编号。

我创建这些列表的原因是因为我需要一种方法来跟踪所有屏幕上的敌人,这样我创建的炮塔就会知道要瞄准哪个敌人。

·在程序启动的时候我们需要把所有列表清空,也就是要删除这四个列表的所有项,就像这样。

·然后把这段代码放到当绿旗点击下面,再来创建变量ID,选择仅适用于当前角色,这是每个克隆体的编号。设置变量id初始值为0,在重复执行里将变量id的值增加1,这样每生成一个克隆体就会得到一个编号,例如生成六个克隆体编号就是1到6。

·在克隆体启动的时候我们需要把它的数据存储到列表里,分别将空内容添加到列表敌人x和列表敌人y。再复制一下,将0添加到列表敌人进度,将变量id添加到列表敌人ids。

·把这段代码放到当作为克隆体启动时下方运行,会看到对应的列表已经有了内容。需要理解一点,所有列表中第几项就是对应编号克隆体的数据。如列表敌人x的第一项就是id为1的克隆体的x坐标,列表敌人y的第一项就是id为1的克隆体的y坐标。

不过此时它们都是空的,由于敌人是移动的,所以它的坐标和进度是实时变化的,所以就在定义"移动"的积木下添加代码来改变数据。

·将列表敌人x对应克隆体id的项的内容替换为当前的x坐标。将列表敌人y对应克隆体id的项的内容替换为当前的y坐标。将列表敌人进度对应克隆体id的项的内容替换为当前移动的距离。这个距离就是用上一次列表中存储的距离加上移动的速度,就像这样。再次运行测试,你会发现列表中存放的坐标和进度都在变化。

·还有一种情况,当克隆体到达右侧边界时克隆体会消失,此时该克隆体对应的数据也需要被清除。添加代码,将列表中对应克隆体的x、y坐标重置为空,删除列表ids中存储的克隆体对应的id。

把这段代码放到这里,我们把隐藏克隆体也直接替换成删除克隆体,运行,敌人消失的时候它的坐标都被重置了,列表ids中对应的编号也被删除了。

这一节的内容就到这里,下一节我们将再回到炮塔,让他能瞄准这些敌人。如果有兴趣继续跟我一起完成这个游戏,欢迎点赞关注。kidscode.cn。