更新时间:2024-10-11 21:45
Scratch 是世界上最大的儿童编码社区,是一种具有简单视觉界面的编码语言,主要面对全球青少年开放,允许青少年创作数字故事、游戏和动画,并通过将它们上传到 Scratch 网站与在线社区分享。Scratch 由麻省理工学院的“终身幼儿园团队”开发,在 2007 年作为可下载的桌面应用程序推出。在麻省理工学院开发和支持超过 15 年后,Scratch 于 2019 年底从麻省理工学院分拆出来并入Scratch 基金会。
Scratch是一种具有简单视觉界面的编码语言,可以通过Scratch创建自己的交互式故事、游戏和动画,并与世界各地的其他人分享创作。它促进计算思维和解决问题的能力、创造性的教学和学习、自我表达和协作以及计算领域的公平性。Scratch 始终免费,并提供 70 多种语言版本。
Scratch 专为 8 至 16 岁儿童设计,但适合所有年龄段的人使用。数以百万计的人在各种环境中创建 Scratch 项目,包括家庭、学校、博物馆、图书馆和社区中心。学生可以使用 Scratch 进行各个级别(从小学到大学)和跨学科(例如数学、计算机科学、语言艺术、社会研究)的学习。
Scratch1.x采用Smalltalk编写。作为“OLPC(One Laptop per Child,每个孩子都有一台电脑)”项目的一部分,Smalltalk提出一个建议的语言学习顺序,其中的每种语言都被设计成下一种的入门和基础。这个顺序是:Scratch-Etoys-Squeak-任意Smalltalk。在学习的过程中,每一种语言都提供了图形化的编程环境,不仅是用于教会孩子们一些编程的概念,而且是包含物理和数学知识的模拟及讲述故事的一些练习。Smalltalk和Squeak作为全功能的应用程序开发语言,在过去的数十年中已经变得十分有名了,而Scratch是孩子们学习的工具。在整个1.x系列中,Scratch官网基本保持不变。该版本的Scratch和网站没有联系(除了发布程序)。这在2.0时期中发生了变化,人们可以在网页里制作程序。
Scratch2.0是由andresmh于2010年1月在Scratch论坛上发布的。它采用Flash编写,支持了矢量图。Scratch2.0分为离线版和在线版,在线版允许直接在Web浏览器里创建、编辑和查看项目(不再需要上传、下载项目或者安装其它软件),可以使用云变量。离线版则只能本地制作程序,且无法使用云变量。
Scratch2.0离线版在Scratch官网提供下载,便于在无法连接Internet的情况下使用,2.0版本加强了与外部链接设备的互动,例如Lego Wedo等。2020年,更加先进的3.0版本发布后,官网不再提供Scratch2.0编辑器。
Scratch3.0放弃了Flash,采用了HTML5来编写,HTML5是最新的HTML、CSS和JavaScript的总和,Scratch3.0首先将会使用WebGL、Web Workers和Web Audio Javascript Libraries。JavaScript是一种广泛的语言,它支持所有浏览器和WebGL,从而跨平台使用。它经过了精心挑选,JavaScript运行不需要任何额外的插件。
Scratch3.0这个名字首先是由Scratch团队的Andrew Sliwinski在2016年5月提出的。2018年1月,Scratch3.0的第一个公测版本(Scratch 3.0 beta)在Scratch官网上发布,Scratch3.0在线编辑器的发行版本在2019年1月发布,而离线编辑器在2019年1月后也提供下载使用。
Scratch3.0不仅仅是重构,也增加了一些功能,比如“移到最后面”积木、“文字朗读”“翻译”扩展等。编辑器的外形看起来更加柔美,支持多次撤销和重做。Scratch3.0保存的文件格式为.sb3,但它也可以读取.sb和.sb2文件。
以当前版本Scratch 3.0为例,页面布局如下:
导航栏是每个 Scratch 页面顶部的栏。包含链接到首页的 Scratch 图标、单击时会打开语言列表的地球图标、文件和编辑菜单、教程等。用于文件新建、加载、保存、教程查看及作品搜索。当一个人在软件中向上或向下滚动时,导航栏会保持在原位,始终可以快速访问。
代码块选择区位于主界面屏幕左侧的区域。包含 Scratch 中的九个代码块类别,在类别的右侧,显示该类别对应的代码块。这些块可以拖到代码区中来制作脚本。扩展按钮位于代码块选择区的左下角,它允许用户添加自定义代码块作为扩展模块,这些扩展代码块将被添加到代码块选择区中,例如与其他设备通信的块。
代码编辑区是代码块选择区右侧的大空间,它是一个浅灰色的矩形。它是用于存储运行项目的块的区域。可以将块从代码块选择区拖动到代码编辑区中,并排列成脚本。每个角色都有自己的脚本,可以在角色区选择角色。
要在 Scratch 中编码,只需从代码块选择区中拖出块并将它们组装到代码编辑区中即可。可以在该区域更改代码块的值。滚动条向各个方向延伸该区域。可以使用鼠标或触摸板垂直滚动代码区域。触摸板还可以水平滚动该区域。
舞台是显示角色并执行其操作的区域。它位于页面右侧区域顶部。所有角色在舞台上都有特定的位置。它默认大小宽 480 像素,高 360 像素。舞台自身也可以有脚本、背景及声音。
角色区位于代码编辑区和舞台下方。它允许创作者快速切换角色并查看每个角色包含的不同脚本。在代码编辑区使用的所有角色都会列表在此,可以通过单击角色来访问它们,每个角色有各自的脚本、造型及声音。在角色的上方,有一个区域包含角色的名称、位置、大小和方向,这些属性可以直接在此处更改。
绘画编辑器是 Scratch的内置造型和背景编辑器。许多创作者 使用它制作自己的角色和背景。这些图像包含两种图形类型:矢量图形和位图(光栅)图形。矢量图形将对象存储为形状或数学曲线而不是像素。这使得矢量图形看起来更平滑,因为它们可以无限放大而不会出现像素化。位图图形,也称为光栅图形,将图像存储为网格结构中的像素数组。这使得它们更容易绘制和操作,但会导致它们在放大时显得模糊或像素化。
绘画编辑器最左边的部分是造型窗格。它由用于创建新服装的按钮以及每个服装的图标组成,包括其造型编号和名称,以及一个小预览。在造型窗格中,列出了所选角色的每种造型。要在绘画编辑器中编辑不同的造型,只需从窗格中单击所需的服装即可。
声音编辑器允许人们制作、查看和编辑角色和舞台的声音。左侧的声音列表用于在编辑区域中选择要编辑的声音。单击声音将选择它,所选声音的右上角还有一个“X”,用于删除声音。右键单击声音将显示三个选项:复制、导出和删除。编辑区域是声音列表右侧和舞台左侧的部分。它的顶部有一个条形图,中间有一个声音,底部有几个工具,包含“快一点”、“慢一点”、“响一点”等效果。
Scratch代码由代码块排列连接组成,代码块共包含9个主要类别、11个扩展类别和3个树莓派扩展类别。
运动块处理角色的移动。它们主要与角色的 x 和 y 位置和方向有关,舞台不包含任何 运动块,因为它是一个静止对象。
外观块与角色和舞台的外观有关。其中一些功能是更换造型和应用图形效果。
声音块与播放各种声音有关,无论是 MIDI 音符还是保存的声音。
事件块与项目中的各种触发器相关,或者当一个部分向另一个部分发出运行信号时使用。
控制块以所需的方式运行项目的基本流程,无论是有预计的还是突发的。它们提供了循环各种块和脚本的功能。它们“控制”项目并增强其运行。
感应块与角色和舞台检测条件相关联。例如,侦测块可用于检测一个角色何时接触另一个角色。
运算块用于处理项目中的许多数学函数,提供简单到复杂的数学运算功能,包含加减乘除等数学运算块、大小比较块、逻辑运算块和字符运算块。
变量块包括两个子类别:变量和列表,两者都与存储和访问数据相关。变量块用于存储信息,例如项目中的分数,并将其用于代码编写等其他有益的目的。变量子类别用于保存与控制变量,例如修改变量值、显示隐藏变量。列表子类别是包含多个变量的变量,可以向列表中插入、删除或替换变量。
自制积木是为选定角色保存自定义过程的块。这些块对于运行脚本和组织脚本非常有用。还可以将布尔值、数字和字符串输入添加到自制积木。
Scratch官方运营维护Scratch在线社区,用户能够将他们的项目分享在Scratch网站并获得反馈。项目可以直接从软件上传到 Scratch 网站,社区的任何成员都可以查看和下载完整的源代码以进行研究。
Scratch 团队与社区合作,为所有年龄、种族、民族、宗教、性取向和性别认同的人维护一个友好和尊重的环境。用户可以在开放的学习社区中与来自不同背景、年龄和兴趣的其他 用户一起探索和实验。成员可以分享他们的工作、获得反馈并相互学习。
一年一度的 Scratch 大会提供了一个机会,可以供人们交流探索使用 Scratch 编程和学习的创新方式。其参与者可以与来自全球 Scratch 社区的教育工作者、开发人员和研究人员分享想法、讨论策略并参加实践研讨会。
2008年7月24-26日,MIT的Scratch团队举办了第一次的全球Scratch社群聚会“Scratch@MIT”,约有300多位老师、研究学者、软件开发者前来参与,该研讨会的目的是:
研讨会第一个讲题是Sowing the Seeds for a More Creative Society,由MIT媒体实验室的龙头老大Mitchel Resnick主讲。
第二个讲题是:Imagine-Program-Share: Stories from the Scratch Online Community(想象-编程-分享:Scratch线上社群的故事)。Scratch团队对孩子们十分重视,他们邀请四个在Scratch线上社群很活跃的孩子从世界各地参加本次会议的开幕演讲。