友情提示:380元/半年,儿童学编程,就上码丁实验室。
“ 今天主要是对上一次内容进行补充和完善,验证过的朋友有没有发现问题,即bug呢。”
大家肯定也发现了,其实主要问题是在多阳光的生成,都是会在最后一个向日
葵处生成阳光的。那为什么会有这种情况呢?
01
—
问题的症结
因为向日葵和阳光分别属于不同的角色,而向日葵我们使用的是克隆体,所以,我们设置了私有变量用于存储克隆体的坐标(x,y)。
但是它要怎么把坐标传给阳光呢,我之前设置了两个公用的x,y变量来传递,但是变量值的唯一性,会让它们始终只能存储一个x值和一个y值,所以,会出现上面说的情况。
要怎么解决呢,我们要引入一个新的积木:列表,它在这里
上图红框处,它也提供了公有和私有的类型,建立方式也跟变量一致,唯一不同,它可以存储多个内容。
比如上图的这个,它可以存储多个x坐标,那样的话,就算有冲突,它也会存到下面去,而不会丢失。
02 —
如何改进
这里主要修改了下面几个角色的脚本:
1、向日葵卡片
该角色主要增加了一个变量用来判断向日葵是否被种下。如果有种下,则可以继续被点击。
2、向日葵
这里就使用了两个列表,一个是向日葵坐标x列表和向日葵坐标y列表, 一旦按下鼠标,则将鼠标的x和y传给向日葵的x和y,同时告诉系统,已经种下,修改“向日葵是否被种植”为1。
最后,将这两个坐标放入到列表中,然后从这个列表中将第一条记录的x和y值取出,作为生成阳光的位置。
3、阳光
特别注意后面的内容,使用后记得清理列表,给后来者提供干净的环境。
03 —
改进后效果
转自公众号:
浩浩学编程