Scratch编程入门

Scratch是麻省理工学院的终身幼儿园团队Lifelong Kindergarten Group)开发的图形化编程工具,免费。201912日正式发布, Scratch3.0。

Scratch把计算机执行的指令、逻辑变成了小朋友能看明白的“积木”,利用它可轻松地创建自己的互动故事、动画、游戏、教学工具和科学模拟实验等。

Scratch编程与其他代码编程的主要区别:编程书写方式不同。Scratch是可视化图形编程语言,使用者可以不认识英文单词,也可以不会使用键盘。其构成程序的命令和参数是积木形状的模块,不用书写代码语句,只需按照一定的逻辑用鼠标拖动模块把它们拼在一起就可以。其他编程语言,例如:Python,java,C等,必须具备一定的打字能力,以及书写英文单词的能力,利用代码语句来书写代码。Scratch编程比较直观,其他编程语言抽象一点,但是,编程的逻辑是相通的,只是表现形式或叫法不同。

与以前2.0版本不同,Scratch3.0版本使用H5和JS语言编写,打破了电脑端和移动端的壁垒,有望在后期实现手机端的同步编程。在Scratch 3.0中文版中你可以完全采用简体中文。

Scratch具有许多编程语言的重要特性,如循环(重复块)和条件(如果那么块)。借助这些功能,我们可以创建算法或指令来完成特定任务。有些人认为在Scratch中拼接块而不是键入文本,所以它不是真正的编程语言。但输入文本不是编程的必要条件。许多编程语言都是用文本编写和存储的,但不是全部。例如,使用编程语言通过连接图形节点来创建程序,产生的程序是框图的形式。又如,在80年代中期之前,大多数程序员使用物理穿孔卡上的孔来编写和存储他们的程序。


与任何一个编程语言都会有一点劣势一样,目前scratch的缺点:一是缺乏操作其它文件(如文本文件)和数据库的手段。二是scratch的中的积木模块本质上相当于一个函数,没有返回值,只能采用一种方式——全局变量来改变。三是缺乏错误处理手段,如果出现错误,进行优化的时候,比较麻烦,只能通过一次一次的查积木来解决这个问题。但总体上来说scratch还是很适合作为编程语言启蒙使用的。

Scratch官网 https://scratch.mit.edu/

特别提示,目前,官网打不开。如果希望在线体验,可用
https://www.scratch-cn.cn/

如果想使用离线版,请先上网搜索下载按装后使用。

用户(学员)可以使用在线版本或离线版本学习Scratch编程。

Scratch3.0打开后的主界面如下:

 

★菜单栏:文件、编辑和教程。

★功能操作区:有三个标签页:代码标签页、造型或背景标签页、声音标签页,默认为代码标签页。

代码标签页的左边(积木选择区)列出了所有的用于操作当前角色的积木,右边(脚本区)是编写脚本代码(程序)的区域,Scratch就是通过组合积木区的各种积木来进行编程的:在代码标签页的积木选择区中单击选择积木,通过鼠标拖动到脚本区域,卡合在一起。

★舞台区:默认情况下中间是一只小猫作为角色。舞台区左上角是用于控制程序启动与终止的按钮;舞台区右上角的按钮可以设置舞台区的大小。舞台区是我们编码效果的展示区域,我们所有代码将以可视化的方式在这里展示。

舞台坐标

这个舞台是由一个左右宽度为480,上下高度为360的直角坐标系组成的,舞台区的每一个点都可以用一个坐标(x,y)来表示,用坐标来确定舞台区上的角色所处的位置。舞台中心为(0,0), 水平方向为X轴范围(-240,240),垂直方向为Y轴范围(-180,180)。我们用鼠标拖动角色小猫,可以观察到角色区中小猫属性中的XY的值在变化,同时也观察到“运动”模块中与XY坐标有关的积木模块中的XY也在变化。

★角色区:角色区在舞台的下面,打开Scratch工具后,它为我们默认创建一个小猫的卡通角色。我们可以修改它,或者删除它,创建一个新的角色。

允许建立多个角色并分别控制。选中的角色四周用蓝色的方框表示,并在上方显示角色的属性,可以改变角色的当前状态。点击选中角色右上角的“x”按钮,可以删除该角色。

【提示:鼠标指向角色区的弹出式按钮,出现弹出菜单】

同一个角色可以有多个造型,造型随着场合的需要进行切换。例:电视剧里有一个男主角(角色),他在工作的时候都穿西装(造型1),在篮球场的时候都穿运动服(造型2),在朋友聚会的时候穿一身休闲服(造型3)。

 

★背景区:背景区可以新建背景,作为舞台背景,新建的方式也有四种,比如从背景库中选择背景。

【提示:鼠标指向背景区的弹出式按钮,出现弹出菜单】

一个精美的游戏或是动画作品,除了主要角色之外,应该还有对应的背景(舞台背景),这样会让整个作品看起来更加美观,也容易让观众有代入感。

造型有编号和名称两个重要的属性,角色除了名称、编号、体积大小,还有朝向、中心点、层级、颜色等等其他的属性。

Scratch编程活动——无论是游戏,是动画,还是其他形式的程序,通常都是围绕角色展开的。

打开Scratch工具后,它为我们默认创建一个小猫的卡通角色。我们可以修改它,或者删除它,然后创建一个新的角色。

 

Scratch自带了一个角色库,有丰富的素材,包括,动物、建筑、人物等等。形象比较固定,可以使用Scratch的“造型”编辑器,编辑角色或绘制新角色它提供了最基础的画图功能,比如,画直线、圆、方形等形状,填充颜色,橡皮檫等。参见下图:

 

编写Scratch程序的过程如下

1) 定目标

就是决定你需要完成什么功能,自己要有明确的目标。在这一步骤中,不涉及具体的编程语言,应该是一般术语来描述问题。

2) 设计

明确了程序将要完成什么任务,思考如何用Sratch来实现它。比如,需要什么样的舞台背景?有哪些角色?角色需要多少个造型?如何组织程序?等等。

3)创建

设计好程序之后,就可以动手创建了,一般是先把需要的角色和背景准备好,再用Scratch编写程序。这里是真正用到Scratch提供的脚本命令的地方。

4) 运行

运行用Scratch编写的程序,点击舞台右上角的“绿旗”按钮。红八边形按钮是用来停止程序运行:

5) 调试

运行程序时,你可能会发现程序有错误,计算机行业管这些错误叫bug。检查程序是否按照你设计的思路运行的。查找并修复程序bug的过程叫调试。

6) 维护

创建完程序后,你可能会发现隐藏的bug,或者你想添加一个新的功能,这时就需要修改程序。这些工作就是维护。

 

案例——简单的猜拳

为简单明了,对设定的目标进行了简化:

设置两个角色,分别为“玩家”和“电脑”,玩家手势变量通过按键控制赋值,这个值就是造型编号!玩家用z、x、c键控制变化手势,电脑随机变化手势应对。

准本素材图片,保存再一个文件夹中,参见下图:

你可以画图等工具制作这些图片。

 

由我们自己创建两个的角色:玩家角色 和 电脑角色。

打开Scratch工具后,它为我们默认创建一个小猫的卡通角色。在此我们删除它,

玩家角色设计

添加玩家角色

鼠标指向角色区的弹出式按钮,出现弹出菜单,单击其中的上传角色菜单,出现“打开:对话框,选中一张你已准备好的图片,再修改此角色的属性值,参见下图:

 

为玩家角色添加造型

点击造型标签页,在角色区选中要添加造型的角色,鼠标指向造型列表区的弹出式按钮,出现弹出菜单,单击其中的上传造型命令,出现“打开:对话框,选中你已准备好的图片,参见下图:

 

电脑角色设计

添加电脑角色,参见下图:

为电脑角色添加造型,参见下图:

 

现在,为角色设置脚本代码:

【关于Scratch 积木
积木官方英文原文是 block ,Scratch 中的积木可以分为三大类:
第一类是最常使用的,可以称呼为 默认 类别,包括 运动 、外观 、 声音、 事件 、控制 、 侦测、 运算、 变量 八大类 120 个积木。 这些积木类似于其它编程语言(比如 Python )的 内置函数 ,用户可以直接使用它们编写程序。
第二类是 自制积木 类别。这类积木相当于其它编程语言中的 自定义函数 ,用户必须先在程序中编写代码定义函数名称及其功能,定义完成后才能在后续程序中使用。
第三类是 扩展 类别,用于增强 Scratch 在多媒体、网络、智能硬件等方面的功能。这类积木相当于其它编程语言中的 扩展函数,使用之前需要 添加 ,添加了以后才可以使用。其中 音乐 、 画笔 、 视频侦测 这三种由 Scratch 官方开发,其它公司或个人也可以根据官方技术标准开发自己的扩展积木。

另一种分类方式是①命令积木,②触发积木,③控制积木和④功能积木。

命令积木和控制积木,两者上方均有一个缺口(凹槽),下方通常都有凸起,编写程序时,这些缺口和凸起可以卡合在一起组合成比较复杂的功能。触发积木(像个帽子)上方是圆弧形的,无缺口,说明它总是处于一段脚本的起始位置。这种积木会等待某个事件的发生,一旦事件触发,则立即顺序执行。那么什么是事件呢:例如,当按下某个按键或者单击某个角色,会触发按下事件或单击事件,这时候会执行事件积木下面的脚本。

功能积木没有缺口和凸起,因此无法单独使用,它们通常是作为其他积木块的输入。因此,看到这种形状,你就要知道它们的功能仅仅是得到一个值。圆角矩形的功能模块能得到数字或字符串,六边形的功能模块能得到真或假的逻辑值。】

 

在代码标签页的积木选择区中单击选择积木,通过鼠标拖动到脚本区域,卡合在一起即可。

玩家角色脚本代码如下:

 

电脑角色脚本代码如下:

 

保存成果

 

运行测试

要运行用Scratch编写的程序,点击舞台右上角的“绿旗”按钮。再按下z、x、c键,留意玩家手势、和电脑手势的变化,是否符合你的预期。

这个例子比较简单,主要是让初学者有个概观并快速入门,以便有个感性了解,在此基础上你可以改进,例如让代码具有判断输赢功能等。

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐