Scratch编程之旅(2)---第一个作品

网友投稿 2018-02-28 10:29

       今天我们要用Scratch编出第一个作品啦!

       在开始之前,我们先来了解一个重要概念,那就是---“事件”。

       我们平时会遇到各种各样的事件,有些是意料中的,有的是意料之外的,而每个事件的发生,都会引发你做出一些后续动作。

       举个例子说明一下:

       比如你作为一个少侠,本来好好的在家里苦练绝世武功,这时突然有人从窗户扔进一把飞刀,以迅雷不及掩耳盗铃之势扎在了你家电视上,飞刀上带了一个小纸条,打开一看上面写到:

       “华山论剑于今晚8点开始,速速前去!”

       你看到后倒吸一口凉气:我初入江湖,行事极为低调,可是他们还是发现了我会绝世武功这个秘密,好吧!看来没有必要再隐藏我的实力了。于是你马上拿起包袱,夺门而去。。。

       大家注意,这个“飞刀传书”就是一个“事件”,而收到这个事件后,你“拿起包袱”以及“夺门而去”,就是这个事件引发的你的动作。

       我们编的程序,它并不知道自已该什么时候开始运行,需要我们通知它。在编程序的语言里,通知程序开始执行,就是依靠事件,事件的触发,就是我们程序执行的入口。

       有的少侠告诉我,在线的Scratch太慢不好用,所以为师给你们做了一个本地版本(名字叫QRobot少儿编程软件,放心他跟Scratch一样,放心用吧),可以直接在电脑上用,不需要联网也可以用,下载地址如下,安装很容易就不说了:

       https://pan.baidu.com/s/1qZEs1CK

       请诸位打开软件,在“脚本”里面,我们可以看到“事件”这个积木块类型,请点击它。

       (现在开始,我们把脚本里面所有的小块块都称为积木块,相同属性的积木块都归到一个积木块类型里面,比如“事件”,“动作”等都是一个个积木块类型。)

https://cdn.china-scratch.com/timg/180302/1029494549-0.jpg

       从这个图可以看到,“事件”这个积木块类型里面,有各种各样的积木块,他们大多数都代表一个“事件”的发生,有的是代表主动去触发一个事件。

       我们拿第一个来讲解一下:

https://cdn.china-scratch.com/timg/180302/102949D62-1.jpg

       这个积木块表示当绿色旗子被点击的事件发生,如果我们希望用点击绿色旗子来启动程序执行的话,就要用到这个积木块。我们现在就把这个积木块拖进我们的程序窗口,像是这样:

https://cdn.china-scratch.com/timg/180302/1029491625-2.jpg

       这样一来,如果我们点击绿色旗子,就相当于扔了一把飞刀进窗户。。。。

       (扔飞刀也挺累的,所以我们休息一下,顺便找找绿色旗子倒底在哪儿?)

       好了,现在飞刀已经扔进来了,接下来,该让我们的角色“收拾包袱”了。

       不管是“收拾包袱”或者“夺门而去”,都是我们的“角色”所做的动作,所以我们需要在“动作”这个积木块类型里去找,请打开“动作”积木块类型,如下图:

https://cdn.china-scratch.com/timg/180302/10294933H-3.jpg

       这个积木块类型定义了我们的“角色”所能完成的所有动作,比如移动,旋转之类的。

       (这里面怎么没有“收拾包袱”啊?更没有“一阳指”之类的武功绝学啊?嗯,毕竟Scratch是老外做的嘛,根本没有考虑我们武林人士的需求,所以我们只好让“角色”做点别的动作了。。。)

       现在我们要做的是,当我们点击绿色旗子之后,让这个小猫,也就是我们的“角色”往前走50步的距离,勉强算“夺门而出”了吧?

       我们要用到的是这个积木块:

https://cdn.china-scratch.com/timg/180302/1029493618-4.jpg

       将它拖到程序区,并跟绿色旗子被点击这个积木块连接起来,然后把积木块默认的10步改成50步,最终的程序像是这样:

https://cdn.china-scratch.com/timg/180302/1029491539-5.jpg

       好了,程序这就样编写完成了。这个程序是当我们点击绿色旗子启动程序后,小猫向前走50步的距离。

       现在可以来运行一下,用鼠标点击绿色旗子看看效果吧。

       程序执行正确,你会看到小猫向前走了一段距离。

       很好,到目前为止我们已经编了一个真正的Scratch程序了,可是,如果今天只是编这样一个程序,那我们的第一个作品就太让人失望了,所以下来我们做一个稍微复杂点的程序。

       我们今天要完成的作品,是用电脑的方向键来控制这个小猫,当我们按下不同的方向键时,小猫就向这个方向进行移动。

       要实现这个功能,我们不能再用绿色旗子这个事件了,因为是要用键盘控制,那么触发的“事件”应该是按下按键。

       在“事件”积木块类型中,我们找到这个积木块:

https://cdn.china-scratch.com/timg/180302/1029493296-6.jpg

       这个积木块表示当按下电脑上某个按键的事件,这个按键是可以选择的,大家注意在积木块上面有一个向下的小小的黑色三角,点击这个三角就可以选择我们需要的按键。

       按我们的要求,我们现在需要拖入4个这样的积木块,并分别将按键选择为“上移键”,“下移键”。。。。完成后如下图所示(当然首先要把我们之前编的程序先删除掉):

https://cdn.china-scratch.com/timg/180302/1029505O9-7.jpg


       “事件”布署完毕,接下来该加入相应的动作了。

       可是,不知道大家是否意识到,我们碰到了一个问题:在“动作”积木块类型里面,只有一个移动积木块,并没有区分是向左还是向右,更没有向上和向下,那如何实现这些方向的移动呢?

       把我们自已想像成这个猫,如果我们向前走了10步,然后被人要求要退回来,那我们是咋做的呢?

       当然我们可以倒着走,不过更好的办法是,我们先转身回来,然后走10步对吧?当我们转身以后,我们还是“向前”走,只不过因为我们面对的方向已经反过来了,所以实际上我们是在“向后”走。

       回到我们的程序,我们也需要这样一个“转身”的动作,使角色知道自已应该往哪个方向移动。

       还是在“动作”积木块类型里面,我们找到如下的积木块:

https://cdn.china-scratch.com/timg/180302/1029505195-8.jpg

       这个积木块的作用,就是完成使角色转向不同的方向,通过点击积木块上黑色小三角就可以进行选择,它不仅可以控制上下左右,甚至可以设定任意角度,这个以后再说。

       我们现在先将这个积木块分别拖到刚刚我们写的4个事件下面,并进行方向的选择,完成后如下图:

 https://cdn.china-scratch.com/timg/180302/1029505L5-9.jpg

       然后,我们再加入移动积木块,完成后如下图:

https://cdn.china-scratch.com/timg/180302/1029504O3-10.jpg

       好了,现在程序终于编完了,现在你可以在电脑键盘上按下方向键,看看你的小猫是不是很“听话”的按你的操作在移动呢?

       现在,可以恭喜你了,你已经完成了你的第一个Scratch编程作品,虽然看上去还是比较简单,但它是真正的一个程序。

       今天我们学习了“事件”,“动作”,并介绍了几个积木块的使用,大家记住,相同积木块类型里的所有积木块的使用方法都是一样的,在这个原则下,我鼓励大家大胆的尝试,去使用我们还没有提到过的其它积木块,看看你能不能让你的小猫做点不同的事情?

       就跟我们在学校放学的时候要留点家庭作业一样,下面几个工作也需要你来完成:

       1.编个程序实现:当点击绿色旗子后,小猫向前走50步,然后再退回来50步回到原点。


       2.在第1个任务完成后,思考一下,如果我们需要小猫不停的向前向后移动,怎么实现?

       3.在第2个任务完成后,深入思考一下,自已有没有扫下面的二维码关注?另外有没有把这个文章分享出去?


--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com