好学好教少儿编程教学平台自2021年开始,就在需要富文本输入的地方,采用了更直观更友好的Markdown编辑器,它可以让熟悉Markdown的用户(尤其是程序员出身的用户)更快捷地在几乎不需要使用鼠标、只使用键盘的方式输入内容,同时为了照顾对Markdown不熟悉的用户,也兼容WYSIWYG(所见即所得)的编辑方式。基于这个编辑器,我们平台的编辑器还提供了一个很贴心的功能就是支持在编辑器中输入Scratch积木代码,实时生成Scratch积木图片。关于这个功能,请参考我们网站上的两篇文章来进一步了解:
在好学好教系统教研模块中进行Scratch课程备课
直接从项目中抽取Scratch代码
我们今天这篇文章,主要是更详细地讲解一下如何通过输入Scratch积木代码的方式来生成Scratch积木图片。
综述
在Scratch中,大部分的积木代码都和我们在Scratch软件上看到的积木是一样的,比如:左转()度
比较特殊的只有一个“当⚑被点击”,它可以写成:当 ⚑ 被点击
,但因为⚑符号输入不便,所以可以写成:点击绿旗时
另外,就是有些积木中间是可以填入自己的内容的,比如:
- 左转()度
- 移动()步
- 如果<>那么
- 说(你好)(2)秒
- 移到最(前面 v)
等等。如果我们仔细分析这些输入,大致可以分成以下几种:
- 里面可以输入内容的,这种输入一般是圆形/椭圆形的,如:
左转()度
将大小增加()
对于这种积木输入,我们用英文的圆括号()或者方括号[]来表示。两者的主要区别在于,如果括号中不是数字而是字符,则在()中的内容会被当做变量,而[]中的内容会被当做具体的一个值,我们对比一下以下两种写法:
说(你好)(2)秒
说[你好](2)秒
可以看到,使用()括起来的“你好”被当成了变量(橘黄色),而用[]括起来的“你好”被当成了一个具体的字符串值。
- 里面是一个条件,例如:
这里可以填入的是一个布尔值,此时它是一个六边菱形,我们可以使用<>来表示它,如上面的如果…那么就可以写成如果<>那么
- 有的积木,其中有部分内容是可以选择的,例如:
或者
或者
它的写法是,用方括号或者圆括号,并且在方括号/圆括号中加上字母“v” 表示可选,如上面的造型编号,写法是造型[编号 v]
,注意“编号”和“v”之间有一个空格。至于使用圆括号还是方括号,取决于积木里面选择的内容使用的是圆形还是方形,好像也没有明显的规律。甚至有的积木还两种形状混用,如:
其他类似的还有:[前移 v]()层
除了以上的常规写法,还有一类积木需要特别注意,那就是控制语句对应的积木。其他积木基本都是一个积木就表示独立的一个动作,跟其他积木没有什么关系,但控制语句中的积木,是需要嵌套其他积木的,比如:
我这里用的对应的语句如下:
如果<(变量)=(10)>那么
移动()步
左转()度
这里的如果<>那么
积木,嵌套了两个积木,那如果我在如果
积木后面还要加其他积木(不嵌套在如果条件中),那该如何写呢?比如,我要实现下面的效果:
答案是,在如果<>那么
范围结束的地方,加上结束
(或英语end
):
如果<>那么
移动()步
左转()度
结束
说[结束](2)秒
使用示例
运动
移动()步
左转()度
移到(随机位置 v)
移到 x:() y:()
在()秒内滑行到(随机位置 v)
面向()方向
碰到边缘就反弹
x坐标
外观
说[你好] [2]秒
思考[嗯......][2]秒
换成(造型1 v)造型
造型(编号 v)
大小
事件
点击绿旗时
当按下[空格 v]键
当角色被点击
控制
等待()秒
重复执行()次
或者更规范写法(加上“结束”):
重复执行()次
结束
多个控制语句的嵌套,需要通过给相应的控制语句加上必要的结束
来界定各自的边界,如:
重复执行(4)次
移动(100)步
左转(90)度
结束
说[画好了][2]秒
再如:
如果<>那么
如果<>那么
左转(90)度
否则
右转()度
结束
否则
重复执行(10)次
移动(100)步
结束
停止[全部脚本 v]
结束
变量
如果要单独显示变量,可以使用()将变量括起来,如(变量)
,其效果如下:
对于列表变量,则可以写成这样:(变量::list)
,其显示效果如下:
变量其他操作,根据Scrach中的积木块来书写即可。
自制积木
自制积木用定义 积木名称
,如:
调用自制积木目前使用:我的积木::custom
,如:
以上就是比较全面的在markdown编辑器中使用scratch的说明。