竞赛指南:Scratch编程·基础入门 – 蝴蝶飞飞(掌握多线程)

竞赛指南:Scratch编程·基础入门 – 蝴蝶飞飞(掌握多线程)

项目要求:

有一只蝴蝶在草丛中玩耍,它一会儿从草丛西边缓慢地飞往草丛东边,一会儿从草丛东边缓慢地飞往草丛西边,扇着美丽的翅膀,飞来飞去。

蝴蝶飞飞
蝴蝶飞飞

在竞赛中,出题者会重点考察参赛选手对题意的理解。

例如,题目中有“缓慢地移动”“缓慢地飞过去”“要看到移动的过程”等字眼,这就表明绝对不能让角色瞬间移到目标位置,即必须看到移动的过程,这时就可以使用“在1秒内滑行到……”积木。

具体步骤:

1、初始化蝴蝶的各种属性

初始化蝴蝶的位置和方向
初始化蝴蝶的位置和方向

2、缓慢地飞行

从草丛西边缓慢地飞往草丛东边,再从草丛东边缓慢地飞往草丛西边

缓慢地飞行
缓慢地飞行

3、飞行中不停地扇动翅膀

在Scratch中,角色库中的大部分角色都包含多个造型,本题中蝴蝶角色有两个造型

蝴蝶角色的两个造型
蝴蝶角色的两个造型

要想使蝴蝶在程序运行的整个过程中不停地拍打翅膀,就需要不停地切换下一个造型。

切换下一个造型
切换下一个造型

但是,这个循环应该拼接到哪里呢?

有人说,直接拼接到上面程序的下面,我们来试一下

第一种拼接
第一种拼接

大家按照这个方式运行一下,就会发现,蝴蝶不是一边扇动翅膀一边飞来飞去的,而是先从西到东飞,又从东到西飞,然后才开始扇动翅膀,显然不符合题意。

我们希望是蝴蝶一边飞一边扇动翅膀,这里就涉及到多线程的问题。

我们要让蝴蝶飞行和蝴蝶扇动翅膀的脚本程序互不影响,又同时进行。所以,我们需要另起一个脚本块。

多线程
多线程

这样一来,左边的脚本块负责飞行移动,右边的脚本块负责切换造型扇动翅膀,这就是多线程的编码方式。多线程的方法在Scratch编程中非常常见,也很容易实现,同学们一定要学会这种方法哦!

另外,我们会发现蝴蝶扇动翅膀的速度有点太快了,可以调整一下,让每次的造型切换都间隔一定时间。

蝴蝶飞飞的脚本程序
蝴蝶飞飞的脚本程序

这样,符合项目要求的脚本程序就编写完成了,赶紧亲自动手试一下吧!

公众号

关注公众号

x