1、前言 Scratch 是由美国麻省理工学院媒体实验室终身幼稚园小组研发的一种图形化的编程语言, 它可以让儿童青少年轻松地创建自己的互动故事、 动画、 游戏、音乐和艺术。 Scratch 的最大优点是将编程变得如搭积木那样容易,采用拖曳、组合的方式来设计程序,取代了传统的打字,免除命令输入错误的困扰。而且,它也是“可视化”的程序语言,能轻松的把我们创意思考“显示”出来。 Scratch 是为了青少年儿童发展 21 世纪所需要的技能而设计的。当青少年创造并分享他们的作品时,除了可以学到数学与电脑的知识,同时也能发展系统思考能力、团队协作能力和创新力。 Scratch 是一个不需要支付任何费用的自由
2、软件,已翻译成各国文字方便世界各地的儿童青少年使用。而且它还是跨平台的,无论你的电脑操作系统是微软的 Windows、苹果的 Mac OS,还是自由免费的操作系统 Linux,都可以安装使用。 教程内容的设计充分考虑到儿童青少年的兴趣和思维发展的特点来进行设置,由浅入深,由易到难,由简单到复杂,引导兴趣,循序渐进,逐步掌握 SCRATCH 语言的同时,理解程序设计的基本思路,掌握程序设计的基本方法。 为了便于更好的掌握每节的重点,设置了“学习目标”环节,将本节重点提出,便于学习过程中有意识的加强理解认 知。最后还设置“拓展训练”环节,强化“学习目标” ,激发创造力,发展思维。 本教程所用实例,
3、 层次安排上尽可能循序渐进,符合儿童青少年的认知发展规律,不强行拔高,逐层深入。学习每节所需时间也都不长,使学员在轻松的氛围中完成学习过程中,学到了知识,提升了能力,增强了成就感,提高了兴趣。这也应该是学习 SCRATCH 的根本目标。 当然,书中一定会有瑕疵,希望大家在使用过程中发现,给我们指出,我们将在后续工作中加以改正。 附 : 教程 中 所 涉 实例 及 素材 可 到 下 列 位置下载 。 https:/ 访问密码 46a4 2016 年 7 月 Scratch 程序 设计教程 目录 第一节 认识 SCRATCH-1 第二节 淘气的小精灵 -6 第三节 游泳的火柴人 -8 第四节 躲开
4、鲨鱼 -11 第五节 多彩的舞台 -14 第六节 七色花 -17 第七节 画多边形 -20 第八节 时钟 -25 第九节 打猎 -29 第十节 打靶 -34 第十一节 贪吃鱼 -38 第十二节 飞机大战 -41 第十三节 弹力球 -46 第十四节 迷宫 -48 第十五节 加法练习器 -50 第十六节 胜利狂欢 -55 附录一:趣味小程序 1、瞬移 -58 2、 前空翻 -59 3、 弹跳的皮球 -60 4、绘制花 -61 5、跳舞的女孩 -62 - 1 - 第一节 认识 SCRATCH 一、学习目标: 1、认识 SCRATCH界面分布。 2、学习基本的操作方法。 角色和背景的导入,指令的引入,
5、程序的执行。 3、完成一个简单程序设计(游来游去的鱼) 二、学习过程: 1、认识界面 SCRATCH主界面由四部分组成。如图 1-1 指令区 : 1-1 - 2 - 指令区由八大模块组成,每一模块由不同的颜色来进行标识,每个模块中包含由多条功能不同的语句。 角色区 : 用于显示在舞台上出现的角色。在本区域的左上角,还有三个按钮。用来创建新角色或者导入电脑中已有的角色素材。当角色创建完成后,角色的缩略图将显示在本区域 脚本区: 当角色创建完成后,就要用到这个区域。对角色设定指令,对角色造型的进一步修改,或者是声音的设定都要在这个区域内完成。区域的上部,还显示了当前选定的角色及这个角色的当前坐标、
6、当前方向等内容。如果需要修改角色名称,可以直接修改角色后面文本框中的内容。 舞台 : 是角色表演的地方。所有的设计都将在这里显示结果。需要注意的是在区域的右下方显示的是当前鼠标的坐标值,这个坐标值很有用。有些时候要用到这个值做为设计的参考。 最上面的菜单和工具栏中有很多常用功能,在实际操作过程中逐步学习。 舞台的坐标系统 舞台大小由 480X360 个点组成,如图 1-1。舞台中心为原点( 0, 0) ,原点左右各 240个点,右边为 X轴正坐标,左边为 X轴负坐标;原点上下各 180 个点,向为 Y 轴正坐标,向下为 Y- 3 - 轴负坐标。舞台上每个点的位置都是由 X坐标和 Y轴坐标共同来
7、表示的。 舞台 的 角度系统 舞台的角度系统也是固定的,向上为 0度方向,向右为 90度方向,向下为 180度方向,向左为 270度方向;也可以用“负”角度来表示,上左下右分别为 0、 -90、 -180、 -270。 角色本身有方向指针。在使用过程中只要调整指针方向即可。默认指针方向为 90度。 2、我的第一个程序 游来游去的鱼 ( 1)角色的导入 点开角色区 按钮,打开系统角色库,打开 文件夹,选择一条鱼,确定后导入角色。 右键角色区的小猫,删除角色。 ( 2)对角色 -“鱼 ”进行脚本设计。 1-2 - 4 - 制作过程中会发现旋转方向和角色大小需要调整,可通过下图中提示来完成。如图 1
8、-2。 ( 3) 加入背景。 点击角色区的“舞台”,打开脚本区的多个背景标签,导入背景。并将第一个空白背景删除。1-3 1-4 - 5 - ( 4) 执行程序,观察效果。 这两个标志,前一个是执行程序,后一个是停止运行。 ( 5)保存文件。在“文件”菜单下有“存档”菜单项。 三、拓展练习 你还能把它变成一个养鱼场吗? - 6 - 第二节 淘气的小精灵 一、学习目标: 1、角色动画的制作,多个造型的加入和控制。 2、等待语句的使用方法,知道有些语句中的参数是可以更改的。 二、学习过程 1、创建角色 加入系统角色库 中的角色 ghost2-a并选择角色 ,打开脚本区中的造型标签,导入角色 ghos
9、t2-b。结果如下图 2-1。 2、为角色设计脚本。 脚本为两个,一个用来控制造型的切换,2-1 2-2 - 7 - 制作角色动画;另一个控制角色移动。切换造型时,为防止切换过快,需要加入一个等待语句。如图 2-2。 3、加入背景。 最后结果如图 2-3。 三、拓展练习 角色库中还有许多图片是连续的,可以制作成角色动画。自己找一找,你还能再制作出一个来吗? 2-3 - 8 - 第三 节 游泳的火柴人 一、 学习目标: 1、学习利用“绘图编辑器”中的工具绘制图形,创建角色。 2、进一步巩固角色动画的制作方法。 二、学习过程: 1、绘制角色 点击角色区 按钮,打开绘图编辑器,如图 3-1.利用绘图
10、工具绘制第一个火柴人。 确定后选定角色,在脚本区打开“造型”标签,复制造型 1,用造型 2 的“编辑”功能对造型 2进行修改。如图 3-2。 3-1 - 9 - 同样方法,制作造型 3。结果如图 3-3。 2、设计脚本,并加入背景 3-2 3-3 3-4 - 10 - 三、拓展练习 : 自制角色最能体现个人绘画能力和创意。你还能绘制出哪些角色?并把它制作成动画。 - 11 - 第四节 躲开鲨鱼 一、学习目标: 1、学习获取鼠标坐标函数,并利用返回值控制角色; 2、学习 语句的使用方法; 3、学会使用 事件。 二、学习过程: 1、制作鲨鱼角色动画。 从系统角色库中导入鲨鱼 的三个图片,并制作成角
11、色动画。并对这个角色进行脚本设计,如图 4-1: 4-1 4-2 - 12 - 2、制作海星的角色动画,并进行脚本设计,如图 4-2。 3、对海星进行游戏脚本设计。 对角色的移动控制有多种方法,在本程序中我们使用获取鼠标坐标的方式来实现,让角色一直跟随鼠标移动。这将用到语句和 、 这两个函数。并且要将这两个函数嵌套入前面的语句中的相对应位置。如图 4-3 。 4、增加游戏性。当海星碰到鲨鱼时说:“我完了!”,并且游戏结束。这样需要设置一个碰到事件。鲨鱼的数量可能会有多条,所以采用碰到“鲨鱼”身上的典型特征 -“蓝色”为事件。因为有碰到和没碰到两种可能,所以还要加入一个判断语句 。最后设计结果如
12、下图 4-4: 4-3 - 13 - 注意: ( 1)鲨鱼的数量可以通过复制鲨鱼角色的方法来实现。这样可以减少角色制作的工作量。程序执行前,可以将鲨鱼放到舞台的不同位置。 ( 2)鲨鱼脚本中设置的转角是为了让角色具有复杂的移动路线。 三、拓展练习: 利用获取鼠标坐标的方法 可以控制角色的移动,你能控制鼠标只在上下方向,或者只在左右方向移动吗? 4-4 - 14 - 第五节 多彩的舞台 一、 学习目标: 1、学习外观标签中特效功能的使用。通过改变特效的方法使场景更加具有动感。 2、学习场景脚本的设计方法。 二、学习过程 1、加入场景并设置场景特殊效果。 无论是场景还是角色,在脚本中都可以设置一些
13、特殊效果,如颜色、旋转、亮度等。特效的设置可以通过“外观”下 语句来实现。倒“”表示这是一个下拉列表框,打开后会显示出更多选项。这些选项功能各有不同。 导入舞台背景。如上图 5-2。 对舞台进行脚本设计。用循环语句来控制重复执行,特效方式选择“颜色特效”。为了5-1 5-2 - 15 - 保证每次执行时,特效都是从头开始,还要在脚本中加入特效归零语句。 2、创建角色,并对角色脚本进行设计。最后结果如图 5-4。这里就是一个角色动画,脚本设计你自己来完成吧! 5-3 5-4 - 16 - 三、拓展练习 角色也能添加特效,能使角色产生意想不到的效果,你能自己试一下吗? - 17 - 第六节 七 色
14、花 一、学习目标 1、进一步学习特效语句的使用; 2、角色旋转中心点的调整。 3、图章的用法。 4、学习使用“数字和逻辑运算”函数。 二、学习过程 SCRATCH具有绘图功能,这些功能集中在标签下。通过抬笔、落笔,设定画笔颜色,配合其它语句指令来共同完成。这节先来学习图章的用法。图章功能相当于对原有角色进行复印。本例将利用图章功能,用一个椭圆绘出一朵花,并在绘制过程中改变花瓣的颜色。 1、手绘椭圆,并调整旋转的中心点。 打开绘图编辑器,绘制一个椭圆,用填色工具进行颜色(渐变)填充。 填充过程中有可能颜料溢出,原因是图形没有封闭。可以用画笔工具来描线,封闭后再填充。 点击工具下方的“调整旋转范围
15、”,在绘图区会出现十字线,用鼠标拖动它调整交叉点位置。这个交叉点就是旋转的中心点。如下图6-1。 完成后将边线用橡皮工具擦除。 - 18 - 2、设计椭圆脚本,绘制七色花。 选择限定次数的循环语句 。旋转次数为 7 次,每次转角度为 360/7 度。这里要用到 标签下的 函数。为改变花瓣的颜色在每次图章之前要改变颜色特效。脚本设计如下图 6-2。 6-1 6-2 - 19 - 3、在背景中绘制花枝和叶,调整角色花的位置,执行程序。结果如图 6-3 三、拓展练习 1、如果加入一个循环语句可以制作不断变色的七色花。 2、依次点亮的路灯。 6-3 - 20 - 第七节 画多边形 一、学习目标 1、变
16、量的定义和使用; 2、利用角色画图; 3、实现人机对话(交互)功能。 二、学习过程 变量 : 即在程序运行过程中它的值是允许改变的量。 与之相对应的是 常量 ,常量 在程序运行过程中它的值不允许改变。 变量分为全局变量和局部变量。局部变量只在当前脚本中起作用,其它脚本不能使用这个变量的值。全局变量可以供整个程序中所有脚本使用。同一变量名在同一类型中不能重复定义。所以在设定时,要想好变量的使用条件。 交互是程序设计的重要内容。通过人机对话,可以让程序根据使用者的要求来完成不同任务。 本节将利用变量和交互功能,让角色根据我们的要求绘制出不同的多边形。 1、定义变量 点开 标签,新建一个变量 ,会出
17、现一个面板,如下图 7-1。这是一组单选框,其中“适用所有角色”创建的是全局变量,“只适用这个角色”创建的是局部变量。创建的变量是哪种类型就选择那一个(选定- 21 - 的项前面会出现黑点)。 设定变量名为“边数”,确定后关闭面板。在指令区会出现很多语句,并且在舞台上也会出现定义的变量,如图 7-2。 如果不需要在舞台上显示变量可将指令区变量前的勾选去掉。 2、设计脚本。 拖入循环语句后,加入“侦测”标签下7-1 7-2 - 22 - 的“询问”语句 。并将“你的名字?”改为“ 你要绘制几边形? ”。这时执行程序会发现在场景中出现了文本输入框,在角色的旁边也出现文字“ 你要绘制几边形? ” 在
18、输入框中输入字符,回车键或点击输入框后面的对号,程序会继续向下执行。 继续加入“变量”标签下语句 ,并将 “侦测”标签下的 拖到“ 0”的位置。结果如 。将输入框中输入的值赋给了变量“边数”。 利用限定次数的循环语句来绘制多边形,循环的次数 由“变量”边数来决定,旋转的角度是 360/边数。 执行程序,角色在移动,但并没有图形出现,这是为什么呢?因为画笔还没有落下。所以还要加入“落笔”命令。画完后自然还要抬起笔来。 在开始画之前加入“落笔”,画完后加入“停笔”两条语句。如图 7-3。 多次执行后场景比较混乱。为了将场景清理干净,需要加入一条清屏幕语句 。 - 23 - 三、拓展练习 1、可以通
19、过设置画笔颜色画出不同颜色的多边形,你能设置吗? 2、下面给出几个公式,利用它们可以画出更多美丽的图形: 约定: REPEAT 重复命令, FD 前进 , BK后退, RT 右转, LT 左转 , N 重复次数 ( 1)圆形: Repeat nfd 3.14*R/n rt 360/n R为半径 ( 2)弧 : Repeat Ofd 3.14*R/180 rt 1 O为圆心角 ( 3)正多边形 : Repeat nfd 边长 RT 360/n n为边数 ( 4)空心多角星: 7-3 - 24 - Repeat nfd 边长 rt 720/n fd 边长 lt 360/n 当两个边长不相等时为畸形
20、 ( 5)实心多角星: Repeat nfd 步数 rt K*360/n N为角数 K的取值 K1并且 Kn/2,且与n互质 ( 6)立体多角星: Repeat nfd 边长 rt 720/n fd 边长 rt 90-360/(n*2) fd 边长 *系数 bk 边长 *系数 lt 90+360/(n*2) N为角数 系数为:五角星 1.9 七角星 3.5 九角星 5 11 角星 6.4 - 25 - 第八节 时钟 一、学习目标: 变量值的传递 二、学习过程 在程序设计过程中,变量值常常要在各脚本之间进行传递,被其它脚本使用,或成为激活另一个脚本的事件。这时变量的类型要设定为全局变量,否则其它
21、脚本将无法获得变量的值。 本节实例将用变量来控制时钟的三个指针的转动。 1、绘制角色。 利用绘图编辑器制作角色 -三个指针。并调整旋转中心点。 2、绘制背景。 在背景的绘图编辑器中绘制成表盘。 点选角色区的背景,在脚本区打开“多个背景”标签。点开“背景 1”的“编辑”按钮,进入绘图编辑器。利用绘图工具绘制表盘。 结果如图8-1。 8-1 - 26 - 3、将三个指针重叠放于表盘的 中心点上。旋转中心点要对齐。 4、设计脚本。 基本思路 : 每分钟有 60秒,所以秒针要旋转 60次,每次转角 360/60=6度。 当秒针转动 60次后,分针将转动一次。这里需要一个变量做为计数器,记录秒针的转动次数。同样,当分针转到 60次时,时针也将转动一次。所以分针也需要一个变量作为计数器。 当变量被使用过一次后,变量值还会继续增加。如果用变量值等于 60为脚本运行条件,其变量值将不会再起作用,分针和时针将不会再转动。所以,变量被使用一次后应该归零,重新计数。 ( 1)、让秒针动起来。 选择秒针,设计脚本。 定义 变量“秒针”为全局变量。首先将变量“秒针”初始值归零,并将 语句加入到秒针的循环语句中。如图 8-2。 ( 2)设计分针脚本。 选择分针角色,在分针脚本中要不断判断变量“秒针”的值,只当“秒针”的值等于 60时,才执行旋转命令,所以要加入判断语句。并且在执行之后,要将变量“秒针”