scratch3.0小问题系列(二)克隆体与本体的继承关系

读着有点费劲的题目。解释一下,当一个角色使用了克隆功能的时候,绿旗代码归本体所有,当作为克隆体启动时代码归克隆体所有,其他事件代码为本体和克隆体共有。或者说,其他事件代码被克隆体继承了。之所以要掰扯这个事情,有两个原因,1.有时候我们希望一些功能是本体和克隆体共享,有时候希望不共享。2.克隆功能如果放在其他事件代码里,会产生克隆体克隆自己现象。

有些绕口了,下面我们以实例来展开分析吧。

01只有绿旗代码和克隆体代码两段


我们以一个程序为例,绿旗被点击后,小猫随机运动,按下空格克隆自己一次,克隆体不再克隆自己。

我们可以这么编程。本体一段程序,克隆体一段程序。

运行后,我们发现没问题,和设定的要求一样。这属于最普通的应用克隆体的方式。克隆体产生后,除了继承本体的状态属性外,不再和本体有联系。

02出现其他事件代码


不过,如果我们把代码调整一下,出现了本体代码和克隆体以外的其他事件代码,比如按下向上键漩涡特效+25,按向下键漩涡特效-25。我们编写好程序运行。

发现按向上键,或向下键的时候,本体和克隆体的漩涡状态是同时变化的。这就解释了我们开头说的结论,绿旗代码和克隆体代码外的其他事件代码被克隆体继承了。

03注意克隆条件的位置


根据上面01和02的对比,我们进一步修改程序,把克隆条件单独作为一个事件程序拿出来。

运行后,我们发现,按下空格的时候,依然可以克隆自己,但是发现,克隆体不仅仅来自本体,因为出现了好几种颜色的猫咪,而01中的猫咪的克隆体都是同一颜色。这是因为,克隆体对自己进行了克隆。这里就会涉及到一个问题,我们在编程的时候,是否允许克隆体克隆自己。

当按下空格的时候,本体+克隆体的数量在01中克隆体不克隆自己,那么数量的发展趋势是1,2,3,4,5,6,7,8,9,10。而在03中克隆体克隆自己,那么数量的发展趋势是1,2,4,8,16,32,64,128,256,512。03相比01很快地实现了全屏猫咪。当然512个猫咪是不存在的,scratch限定了克隆体的总数。这里又会引发出一个新问题,克隆体最大数量是多少?克隆体最大数量指的是单个角色的克隆体最大数量,还是所有角色克隆体的总和最大数量?这个我们下次再通过编程试验讨论。

以上代码很简单,可以自己尝试体会一下,如果直接需要代码文件,可以联系我。希望,以上分享对各位有所帮助,转发请注明出处。

scratch3.0小问题系列

scratch3.0小问题系列(一)字体调节

我是苏小糖,平时玩玩scratch、microbit和arduino。后续会推出更多相关文章分享给大家。喜欢的话就关注我吧。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,752评论 1 11
  • 其实大道理都懂,每一个自己细微的选择铸造了今天的你自己。无关天分与运气。常常羡慕别人,被好幸运垂怜,被眷顾。 今...
    欧阳雪儿o阅读 257评论 0 0
  • 拼命,最糟糕的努力姿势,到最后一定是没命! 有目标、目标太多固然是忙忙碌碌、碌碌无为,人生没有结...
    想飛的心阅读 205评论 0 0
  • 失眠 :神经衰弱或平时睡眠不太好,或体内虚火旺盛,不能太晚时间用,肌体正在调解过程中,坚持使用睡眠会越来越好的。处...
    要努力开心阅读 275评论 0 0
  • 课前小例 在方法中声明的变量成为局部变量*。*同一个代码块不能声明名称相同的变量。*在声明变量之前,不能使用该变量...
    金石_832e阅读 309评论 0 1

友情链接更多精彩内容