第二节,实现被点击的水果交换位置

上一节我们实现了水果的位置交换,具体教程和题目要求见:Scratch少儿编程教程-水果消消乐(一)

本节我们继续实现第二个大的功能,点击两个水果图片,实现交换

这一步操作的核心思想是记录两次点击水果的id,坐标,不仅要实现图片的交换,还要对列表中对应位置对应的造型进行交换。

第一步:新建变量

Scratch少儿编程教程-水果消消乐(二)

“点击次数”用来记录是第一次点击水果还是第二次;

Scratch少儿编程教程-水果消消乐(二)

“首次点击x”,“首次点击y”分别记录第一次点击水果的坐标,方便后面交换位置;“首次点击id”,记录点击的是第几个水果;“首次点击造型id”,记录点击水果的造型;

Scratch少儿编程教程-水果消消乐(二)

“二次点击x”,“二次点击y”分别记录第二次点击水果的坐标,方便后面交换位置;“二次点击id”,记录点击的是第几个水果;“二次点击造型id”,记录点击水果的造型;

第二步:编写程序,当绿旗被点击时初始点击次数为0

Scratch少儿编程教程-水果消消乐(二)

第三步:当角色被点击,此时分两种情况,先看第一次点击

如果点击次数是0,表示这是第一次点击,分别记录点击水果的坐标(x,y)、是第几个(id),造型(列表中对应的造型),然后广播消息“显示红框”并等待,并将点击次数设置为1,这样首次点击得操作就完成了。

Scratch少儿编程教程-水果消消乐(二)

如果点击次数不是0,是1,那表示这是第二次点击,同样分别记录点击水果的坐标(x,y)、是第几个(id),造型(列表中对应的造型),然后广播消息“显示红框”并等待,并将点击次数设置为2,接下来我们就广播消息“交换位置”、“删除红框”

Scratch少儿编程教程-水果消消乐(二)

将这段程序放入到条件语句的“否则”里,完整的代码如下:

Scratch少儿编程教程-水果消消乐(二)


第四步:实现红框的显示与消失

切换到红框角色,初始为隐藏状态。

Scratch少儿编程教程-水果消消乐(二)

当接收到“显示红框”,生成克隆体。

Scratch少儿编程教程-水果消消乐(二)

当克隆体启动的时候,如果是第一次点击,就移动到首次点击的坐标,如果是第二次点击,就将克隆体移动到第二次点击的坐标,显示出来;

Scratch少儿编程教程-水果消消乐(二)

当接收到“删除红框”,删除克隆体即可。

Scratch少儿编程教程-水果消消乐(二)

这样红框的所有程序就编写完了,再回到水果,来实现交换。

第五步:水果交换,克隆体互换位置,列表中对应位置的造型也要交换

当克隆体收到广报消息“交换位置”,克隆体判断自己如果是首次点击的,那它将移动到第二次点击的坐标位置,并将水果列表中该位置的造型替换为第二次点击的造型,并更新自己的位置,也就是自己id为第二次点击的id。

Scratch少儿编程教程-水果消消乐(二)

当克隆体收到广报消息“交换位置”,克隆体判断自己如果是二次点击的,那它将移动到首次点击的坐标位置,并将水果列表中该位置的造型替换为首次点击的造型,并更新自己的位置,也就是自己id为首次点击的id。

Scratch少儿编程教程-水果消消乐(二)

举个例子,下图中点击了第3个和第6个水果,那么接下来他们的位置就要发生变化,草莓要移动到第二行,西瓜移动到第一行,这只是克隆体的位置改变,观察水果列表,第3项它原本是造型3(西瓜),第6项它原本是造型4(草莓),交换后也要更新

Scratch少儿编程教程-水果消消乐(二)

再看交换后的结果,如下图,水果列表中第3、6项的造型编号也已经更新了,还有一个要更新的就是水果的位置是第几个用(id)来记录的,所以也要更新,那就是原本在第6的西瓜要改为3,第3的草莓要改为6,这样就与实际中保持了一致。


Scratch少儿编程教程-水果消消乐(二)

所有程序完成了,试一下,看能否完成交换,目前为止,点击水果只能进行一次交换,因为交换后还有一个重要的工作就是查看有没有可以消除的,那就让我们下一节来完成吧,

*如果你很善于思考,你会发现目前的程序,可以让任意位置的两个水果进行交换,那么如何进行限制呢,这个情况就比较复杂,我们暂不考虑,有想挑战一下的同学可以在完成整个程序后进行优化升级。

本站内容未经许可,禁止任何网站及个人进行转载。