带孩子玩Scratch编程:坐标(下)

更多的示例程序

在第1节,我们已经编写过几个移动小猫位置并画出它行走轨迹的程序。其中小朋友最难理解的,是利用函数画出椭圆形的程序。但如果你觉得还挺奇妙,不妨试试以下两段更复杂的函数,看看这回小猫的行走轨迹是什么形状:

示例程序9:蜗牛壳形的轨迹

Scratch阿基米德螺线

示例程序10:母亲节礼物

下面这段程序还需要先新建立一个变量“v2”,方法我们在第30页介绍过。

Scratch心形线

示例程序11:具有三维视觉效果的地球、土星围绕太阳转动

此程序需要建立3个角色——Sun、Earth、Planet2;建立两个变量a1、a2。

太阳Sun的程序:

Scratch行星公转

“将大小设为(  )”积木在“外观”栏目中。

地球Earth的程序:

Scratch行星公转第1步

注意,地球的程序中有两组彼此独立的代码段。

土星Planet2的程序:

Scratch行星公转第2步

注意,土星的公式与地球很像,但是使用的变量是a2哦,括号里的数字也有一些区别。

这段程序是目前你搭建的最长的程序了,如果运行正确,看到地球和土星绕太阳转动,是不是很有成就感呢。上述程序考虑了近大远小的透视效应,以及行星运动的开普勒第三定律——行星的轨道离太阳越远,它绕太阳转一圈花的时间就越长。因此,这个程序可以算是你的第一个物理仿真程序。以后你学习天文和物理时,还可以看看这段程序哦。

示例程序12:薛定谔的小猫

Scratch薛定谔的猫

Scratch薛定谔的猫运行

这个程序是一个小游戏,点击绿旗子后,屏幕上的11只小猫开始转动,同时,有一道道的“虚实波”从屏幕左下方向右上方划过。这代表小猫在量子世界中,没有真实的确定状态。只有在我们按下空格键进行观测时,小猫才确定地出现在11个可能位置中的一个地方。如果是在左边,它就逃过一劫;如果在右边,就表示它被骷髅毒害了。

Scratch薛定谔的猫第1步

在这个程序中,所有角色的位置都是不变的,但是我们通过程序控制每个角色的转角和虚实,也营造了一种动态效果——“波动”。在以前的程序里,我们的角色都是拖着画笔移动,画出运动轨迹。现在没有角色在移动,但是看起来“虚实波”也是在传播。波动也是一种很重要的物理现象,这是你的第一个波动力学仿真程序。

在程序中,我们不再像以前那样,用运动公式设定角色每时每刻的坐标位置,而是把角色的坐标和计时器输入波动公式,计算出每个角色每时每刻的方向和虚实。

本例程需要建立4个变量,分别是:ω、px、py和id。(如果不会输入ω也可以输入别的字母代替,如w)。

保留默认的小猫角色,并插入一个骷髅(Skeleton)角色,放到屏幕右边,如下图所示:

Scratch薛定谔的猫第2步

然后,在角色栏里点击骷髅的图标,编辑骷髅的程序:

Scratch薛定谔的猫第3步

其中,“广播(observe)并等待”积木是在“广播(消息1)并等待”的基础上,点“消息1”右侧的下拉箭头,选择“新消息”之后,再输入“observe”而制作出的新的消息名称。

Scratch薛定谔的猫第4步

Scratch薛定谔的猫第5步

也就是说,这段程序用到了2种消息。“消息1”是我们在程序开始后,每隔0.05秒就广播一次的,它的作用是触发小猫们展现“波动”效果的程序。

“observe”消息是按空格结束程序后再广播的,它的作用是对所有角色宣布观测结果。

然后编辑小猫的程序,在角色栏中点击小猫,编辑它的代码。可以看到,小猫程序里有两段分别处理这2种消息的监听器:

Scratch薛定谔的猫第6步

这段程序中,新出现的积木比较多,“如果<  >那么…否则…”积木在“控制”栏目中。“(  )=(  )”、“(  )>(  )”积木在“运算”栏目中,“将虚像▼特性设为(  )”积木在“外观”栏目中,是“将颜色▼特性设为(  )”的积木,点下拉箭头选择“虚像”而修改来的。

以上程序编好后,可以先试运行一下,看看小猫是否能旋转起来且变化虚实。测试一下按空格键之后,转动是否结束,小猫是否说话。

测试成功后,我们就可以再复制10个小猫出来,在角色栏的小猫上点鼠标右键,然后选择“复制”:

Scratch薛定谔的猫第7步

每复制1次,就会生成一个一模一样的小猫副本,而且这些副本也自动具有我们刚才给小猫编的代码。复制10次后,共有11只小猫,我们按下图的方式排列:

Scratch薛定谔的猫第8步

这样就大功告成了,点击绿色旗子运行吧。