第三节,实现水果消除
在上一节中我们实现了点击两个水果进行位置交换,交换后就需要进一步判断有没有同一行或同一列的水果是一样的,那么他们就应该被消除。
这一节的核心思路就是判断水果列表中那些在同一行或同一列的水果造型是不是相同的,如果是那么就消除,将列表中的造型置为0,具体怎么做?
列表中处于同一行的情况有:1,2,3 ; 4,5,6 ; 7,8,9
列表中处于同一列的情况有:1,3,7 ; 2,5,8 ; 3,6,9
只需要依次检查这几个位置的水果造型是否相同即可,那么我们自制一个积木,专门用来判断是否消除。
第一步:自制积木“判断消除”,该积木有三个参数,就是上面处于同一行或一列的三个位置。
第二步:新建一个列表“消失的克隆体”,用来存储需要进行消除的克隆体(编号id)。
第三步:定义自制积木“判断消除”
判断列表中这三个位置的造型是不是相同,如果相同,那说明需要被消除,就将这三个位置存入列表“消失的克隆体”,并将“水果”列表中对应位置的造型置为0,然后广播“消失”并等待,程序如下:
在这一步中有一个特殊情况,那就是三个位置都是0,表明已经消除过,那就不用再判断了,所以要在判断消除之前先判断有没有某个位置造型是0,修改后的程序如下:
第四步:消除
当所有克隆体接收到广播“消除”,然后判断自己的id(位置)是否在“消失的克隆体”列表中,如果在的话,就隐藏自己,实现消除效果。
第五步:使用自制积木实现消除判断。
在上一节点击水果,实现交换程序后,使用我们刚刚自制的积木,逐行逐列进行判断,所有判断完毕之后将鼠标“点击次数”置为0,这样就可以进行下一次交换了。
将这段程序放入交换位置之后
目前为止,程序的主要功能就已经完成了,运行测试一下,看看能否实现将舞台上的所有水果都消除呢?
下一节我们将对程序进行收尾,判断是否胜利,并附上完整的程序代码。
本站内容未经许可,禁止任何网站及个人进行转载。







