最新消息:

Debug in Scratch —— Part 3 从 Scratch 到建构主义

Scratch 少儿编程 1651浏览 0评论

友情提示:视频教程观看时请手动设置清晰度。

鉴于很多老师对于查看克隆体脚本的用法及其意义还有很多疑惑,因此再做一篇补充说明。

 

原文链接:Debug in Scratch —— Part 2

 

在文中提到了查看克隆体脚本的方法,以及直接访问克隆体局部变量(如x坐标)来对程序进行调试的技巧。

 

下面通过录屏来完整展示克隆体脚本的一些特点,以及有老师提到的克隆体局部列表的查看方法(其实和局部变量是一样的)

 

当然,我绝对不建议你指望克隆体的局部列表来存储什么重要信息,毕竟克隆体是临时的,一旦程序停止或重启,克隆体可就没了。局部列表尽管还能在舞台中看到,但是是无法正常使用的。

 

那么,查看克隆体脚本的意义是什么呢?

 

一是像《Debug in Scratch —— Part 2》文中提到的那样,因为克隆体的很多东西都是隐性的,给程序调试带来了很多不便,所以这个技巧可以在程序调试时派上用场,比如直接让某个克隆体报出它的坐标,比如直接在某个克隆体中运行【碰到()?】,检测它碰撞侦测的结果以诊断程序错误所在。

 

二是帮助我们理解Scratch

首先,通过这个技巧,我们知道克隆体也是有脚本的,且所有克隆体和本体的脚本是每时每刻都同步的。在克隆体中增加一块积木,所有克隆体及本体都会增加一块一模一样的积木。

我们还知道另一件事——我假设你是一个有一定基础的Scratch学习者——当一个角色接收消息时,其克隆体也会接收到消息,因此总会产生一些讨厌的BUG。消息如此,【当按下按键()】亦是如此,按下某个按键,克隆体也会执行。

        那么,这两件事有什么联系呢?对于“克隆体会接收消息”这件事,我们其实是知其然,而不知其所以然。为什么克隆体会接收消息?为什么Scratch要这么设定?结合上文中,克隆体和本体脚本始终保持一致的结论,也就是说,本体中有一个【当接收到消息()】,克隆体中也有一个【当接收到消息()】,既然本体有耳朵,克隆体也有个耳朵,那么克隆体凭什么不能接收本体能接收的消息呢?克隆体被其他诸如此类的触发积木(帽子型)触发的原因,自然迎刃而解了。

        现在你是否理解了【当作为克隆体启动时】这个积木?它的作用不是告诉克隆体,该执行什么,而是告诉本体,不该执行什么。

        所以别小瞧克隆体,克隆体和角色一样,该有的都有,只不过克隆体是临时存在的而已。

 

Scratch还有很多东西值得我们去挖掘。根据已有的认知范围,通过不断地思考,深化理解,逐步构建起对未知事物的认识,将已知和未知联系在一起,化未知为已知,从而使自身的认知得到发展。这不正是我们所强调的建构主义吗?

转自公众号:
Scratch 格物堂

您必须 登录 才能发表评论!