以前在帮朋友搜集少儿编程教育资料的时候,发现了麻省理工开发的积木式编程语言的Scratch,最近有空玩了下,感受很惊艳,我能想象用它作一些有趣的事情,Scratch把编程元素变成像乐高积木同样,能够经过简单拖放组合来实现逻辑,交互体验很不错,很容易就能实现一些简单的动画控制,在实现复杂一些的逻辑的时候,搭积木的方式会显得繁琐,这个是编程模式的缘由,不过相信会有不少聪明才智的解决方法,有时真想直接敲几行代码搞定。 Scatch最让我喜欢的是能够直接在web上运行,其官方社区搭建得很好, 能够看到来自世界各地朋友的做品,若是你感兴趣,甚至能够一探其做品内部积木结构的究竟。web
我下载的时候新出了3.0的版本,因为我也是新接触,因此相较于2.0以前的变化,就不太了解了,我就从3.0开始玩,记录一些对Scatch的初印象:编程
1:和大部分的2D引擎同样,Scratch也有舞台和精灵的概念,舞台能够作不一样的场景,精灵(sprite)就是舞台上活动的元素了。每一个场景和精灵,均可以在其内部搭建积木来实现特定的逻辑,好比监听某个事情,触发某个动做。app
2:Scratch提供了不少通用积木,有控制精灵的动做,外观,声音的,有设置事件的,有控制流程的(while, if...else...等等),有侦测碰撞的,有数学计算的,有设置变量的。有趣的地方在于积木有不一样的形状和凹槽,用于识别其类型和接入其余积木,好比圆形的积木能够简单理解为变量,方尖的积木能够理解为条件,带上下凹槽的可能是用于控制流程,能够互相上下拼接,只是有些积木没有上凹槽,说明只能用于开始,有些没有下凹槽,说明其后面不能再接其余积木。编程语言
3:每一个精灵或场景都是能够带有多个积木组的,方便把不一样的逻辑分开,不要让一个积木组太长。编辑器
4:每一个精灵和场景自身均可以有多个帧,Scratch里叫作造型,用来表现不一样的动做或者阶段,好比,能够用上图中右边的积木排列,来实现一个精灵的自身动画,记得加上等待时间的积木,否则循环速度太快,就看不到动做了:动画
5:使用变量积木,给程序添加变量来记录变化值,而后经过变量做为条件,能够实现许多基础的逻辑;插件
6:Scratch是支持离线开发的,有window和mac桌面版本,能够在本地开发,保存为.sb3的文件,而后能够导入到线上编辑器,反之亦然,这个能够实现必定程度的协同。orm
初次尝试,修改了一个追球的小游戏,增长了得分使场景的变化,每一个场景的倒计时间会愈来愈短: Chase Ball II on Scratchblog
好奇与探索:游戏
1:Scratch是能够在官网的web上运行的,我在想如何能够在本身的web上运行起来,是否是有提供什么插件或是js的解析组件。
2:听说3.0能够支持移动设备,是否就是在移动设备上用web运行,仍是说有装门的移动版本的运行app。
3:颇有意思的是积木的扩展,除了基础的积木,我已经看到Scratch支持Lego的Mind Storms EV3, 我想会继续探索下去。
追加的疑问与已知的解答:
1:一个已经shared的项目,怎么进行修改,打开修改,从新导入后变成了一个新的项目。
2:如何给一个项目设置封面。
Scratch项目是以最新保存时的界面做为展现的封面的, 有两个解决方法,第一种简单的就是保存时选一个好的界面, 第二种就是专门去作一个封面,并确保程序开始的时候把这个封面隐藏掉便可。