有人曾经提问过这个问题,怎么区分去用克隆体和本体?
这个问题首先要回归程序设计的初衷。什么样的程序算是好的设计?答案可能不唯一,但是最重要的就是用户体验好的程序。Scratch并不像c++、Python那样强调数据结构和算法,它注重的是趣味性和创新能力。所以,只要能够正常运行,并且给用户好的体验,这就是一个好的Scratch程序。
第一个案例:捕鱼。这么多小鱼究竟是本体还是克隆体?
这个案例中用克隆体和本体都可以。实际操作中,用本体角色可能更简单一些。鱼被捕到就隐藏,等待5秒后再在一个随机位置显示。
第二个案例:打开礼物。那么多草莓,这肯定就是用克隆体了。首先我们没有必要建立这么多角色,其次这些草莓每次被抛出完全是个随机的曲线。
第三个案例:飞机飞行阻击。一架架飞机飞过,直升机发射子弹。这个其实和捕鱼类同,用克隆体和本体都可以。
克隆体本身继承了本体的一些特征,包括造型、大小、运动、变量等等。从某种意义上来讲,它和本体是一致的。区别在于本体只有一个,而克隆体有很多;克隆体的启动和消失,可以通过克隆体启动和删除的模块实现。对于Scratch来说,到底用谁并不重要,重要的是我们要设计好能正常运行且用户体验优秀的程序。
这也是所有软件设计的初衷。