【少儿编程】scratch大师级教程

第一章:克隆体的私有变量

首先,我们从一种特殊的角度来理解变量和和链表:
1.变量——可以变动的字符串或数字;
2.链表——多个变量的有序化,序数称之为项数。

Scratch的脚本里是没有“新建一个变量”的。但是之前说过链表多个变量的有序化,所以,我们可以通过在一个链表里新建一行,用替换某行的方式是其成为一个变量。

接下来是实例:

先让舞台询问“你要让第几个火柴人说话?”,接着询问“说些什么?”

【少儿编程】scratch大师级教程-少儿编程网

但是只是这样是远远不够的。我们要新建一个变量组(即链表,以后都这样称呼),在里面创建3个变量(即新建三项,以后也都这样称呼)。如图所示:

【少儿编程】scratch大师级教程-少儿编程网

火柴人克隆体须调用第一次回答的内容,即第几个火柴人说话。我们可以新建一个变量,再用脚本将变量设为第一次回答的内容。再利用脚本调用这个变量。

不明真相的吃瓜群众一号:“为什么在调用时不直接调用第一次回答的内容,反而还得调用与第一次回答内容相同的变量呢?”

孔明:“因为有第二次询问。Scratch在侦测部分的脚本就有‘回答’这一变量。但它会设为最新一次的回答。我们的脚本里询问‘第几个火柴人说话’的结果是第一次回答,而还有一个第二次询问,即询问火柴人说话的内容。在调用回答的时候调用的时候‘回答’这一变量已经设为第二次的了。所以我们要想调用第一次回答,必须用变量将它设为常数(即不可以变动的字符串或数字)”

【少儿编程】scratch大师级教程-少儿编程网

【少儿编程】scratch大师级教程-少儿编程网

接着,我们再把第(克隆体_话_项数)项{克隆体_话}设为第二次回答。

【少儿编程】scratch大师级教程-少儿编程网

好的今天精品教程就到这里,我们下次再见

第二章:如何在scratch中输入矢量中文

今天我将向大家介绍 如何在scratch里输入矢量中文字体

众所周知,自从scratch 2发布后,MIT官方就去掉了中文输入,中国用户无法在scratch里输入中文,着实是一件令人头疼的事情。

好在,scratch支持导入,我们可以借助其他工具来达到这个目的。
PS:本次教程只针对矢量,位图可以直接在网络上输出字体再导入。

下面开始正式介绍

1.下载并安装AI(建议下载LZ在1楼提供的链接)
【少儿编程】scratch大师级教程-少儿编程网

2.打开AI 新建一个空白文件
启动界面如图所示
【少儿编程】scratch大师级教程-少儿编程网
3.AI CC 2015界面如图所示
【少儿编程】scratch大师级教程-少儿编程网
4.在顶部菜单栏点击文件 再点击新建,会出现下图的 新建文档 设置窗口(蓝色标注为可更改项目,其他的在没有深入学习AI前可以暂时忽略)
【少儿编程】scratch大师级教程-少儿编程网
就这样,一个空白文件就创建成功了
5.接下来,选择左侧菜单栏的文字工具,在空白文稿上写上你需要的字
【少儿编程】scratch大师级教程-少儿编程网
6.调整你输入的字[左侧蓝色方框内可调整颜色,右侧蓝色方框内可调整字体和大小]
【少儿编程】scratch大师级教程-少儿编程网
7.确认无误后,点击文件,点击存储为来导出文字
【少儿编程】scratch大师级教程-少儿编程网
8.选择保存位置,将保存格式选择为.SVG
【少儿编程】scratch大师级教程-少儿编程网

9.设置保存项目,先把SVG配置文件改为 SVG 1.0(某些scratch 2不支持SVG 1.1就选择SVG 1.0比较保险)再把文字改为 转换为轮廓(这样可以使你导入的字体不带背景,只有字体的轮廓,方便使用或移植)。确认无误后点击确定
【少儿编程】scratch大师级教程-少儿编程网

10.存储成功,赶紧试试导入scratch里吧(.SVG格式通常用浏览器打开,AI也可以打开。导入scratch里时请 更改为矢量模式 后再导入字体)

 

第三章:scratch的BLEAPI的云端存储和终端通讯

今天我们来讲一讲BleAPI正确的食用方法,不知道有没有人已经无师自通了呢?

本章节以滑动条为蓝本讲述BLEAPI的强大。

我们上来老规矩,多余的删光,留下角色“Sliders”。

【少儿编程】scratch大师级教程-少儿编程网

我们看看我们这次提供的调用脚本

【少儿编程】scratch大师级教程-少儿编程网

接下来我们开始码脚本。我们想要一个亮蓝色的,亮蓝色的RGB值是:43 165 226,我们把它填进去。

【少儿编程】scratch大师级教程-少儿编程网

然后我们希望以x-80 y0(图中打反了)为源点(定义见上图),绘制一个长160的自由滑动条,最小0,最大160。自由滑动条就是对每次次滑动的值限制,想滑动多少就滑动对少。自由滑动条其实就是限制值为1的限制滑动条。

【少儿编程】scratch大师级教程-少儿编程网

接下来后我们希望以x-80 y-20(图中又打反了)为源点,绘制一个长160的限制滑动条,最小0,最大160(图中忘打了),限制值为20。限制值就是每次滑动对滑动条的值增加或减少的值必须是限制值的倍数(可以为0倍)。那么我们对于我们这个滑动条来说,用户就只能滑动到0、20、40、60、80、100、120、140、160处,滑动到其它位置则会被四舍五入。则对于我们这个滑动条来说,用户滑动到110处,则会自动跳转至120:用户滑动到109处,则会自动跳转至100。

【少儿编程】scratch大师级教程-少儿编程网

接下来我们需要新建2个变量来储存滑动条的值。我们要用到"get value of slider {目标滑动条编号}"。这个脚本的作用是将指定滑动条的值输出至变量“#value”。

【少儿编程】scratch大师级教程-少儿编程网

然后我们需要一个“将{}设定为{}”脚本将变量“#value”转存至另一个变量保存,因为我们只有一个变量“#value”。

【少儿编程】scratch大师级教程-少儿编程网

关于滑动条的编号则是根据代码的排序来的,按钮API也是这样。

【少儿编程】scratch大师级教程-少儿编程网

然后我们把两个滑动条的值都输出,注意如果你希望自由滑动条输出的值是一个整数的话你需要在外边套一个“将{}四舍五入”。

【少儿编程】scratch大师级教程-少儿编程网

然后我们把“update sliders”模块也给加上去,注意排序,再套一个“重复执行”,再一按绿旗。这个时候我总算知道我之前一直输错了

所以我修正过后再按下了绿旗。嗯哼,效果不错。

【少儿编程】scratch大师级教程-少儿编程网

接下来再来介绍一下模块"set value of slider {目标滑动条编号} to {目标值}"的用法。这个模块的作用是设定一个滑动条的值,譬如我想把编号为1的这个自由滑动条的值设定为66,我们只要如上填写;我想把编号为2的这个限制滑动条的值设定为75,我们如上填写后激活它,依然是会按照限制规则四舍五入的,注意红框里的两个值。

【少儿编程】scratch大师级教程-少儿编程网

最后补一下颜色更改,这个是补的图,所以与例程有所不同。注意更改颜色不会更改底部灰色,毕竟灰色百搭。

好,到此我们的BleAPI的食用方法就全部结束了,如果喜欢请点个赞并关注一下我哦

第四章:用scratch写编程语言

这一章我们将介绍贴吧上的一个大师级的scratch新玩法——用scratch写自己的编程语言

其实也不叫介绍,就是给大家用的

先放一张main方法的代码

【少儿编程】scratch大师级教程-少儿编程网

下面我们介绍一下main方法

main函数,又称主函数,是程序执行的起点.main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数.main函数正是迎合人们的思考方式而生成的而非必定的模式.有主有次,执行起来条清缕析;既可将程序模块化又实现了一个闭合的整体.main函数不是从最开始产生就不变的,不同语言给出了不同的看法

在这款scratch编程语言里

目前能够编写的代码:
特殊变量
!tX !tY !tRot !plX !plY !plRot !pldis

$num 代表全局变量
&num 代表局部变量
#num 代表在全局栈内位置
%num 代表局部栈内位置

一次只能定义三个变量
var A 定义变量
pot A [x]定义变量A的变量表内位置为[x]
gar A 定义全局变量

push A B 入局部栈 #-1=B
gpush A B 入全局栈 #-1=B
del 删除最后一个局部栈内数字
gdel 删除最后一个全局栈内数字

mov A a
add A a
sub A a
mul A a
div A a
rem A a
int A
修改;+-*/%round
inc A
dec A
A++--
sin A
cos A
tan A
asin A
acos A
atan A
sqrt A
powE A
log A
abs A
rnd A a b 将A随机为int(a,b)
cnt A a 连接A a-->A

"a":定义代码段
ijp "a" #-1!=0 -goto
njp "a" #-1==0 -goto
jmp "a" goto
mel "a" "b" "c" #-1>0 --goto "a";==0--"b";<0--"c"

func "a"进程代码段标记
end 结束代码段并返回
ent "a"将指针移动到标记代码段
cte "a"创建一个名为a的进程

wait A 等待A秒
print "a" b 输出a b秒

tp x y 传送到x,y
move time x y 在times内move到x,y
spd xadd yadd 将x,y增加
go step 移动step步
angle a 将角度设为a
anpl 将角度设置为自机狙
CW a 顺时针旋转a度
AC a 逆时针旋转a度

cos a 将外观变为a
col h v 将改变色相,明度
size a 改变大小为a%
laydown a 下移a层
laytop 移动到顶层
visitable a a=0隐藏;a!=0显示

来个简单的例子,这一段代码会生成10个enemy并在x=0的地方排列一下

func "main";
var a;
mov a 10;
push 666;
gpush 666;
jmp "cte2";
"cte1":;
dec a;
mov #-1 a;
cte "enemy1";
"wat1":;
mov %-1 #-1;
sub %-1 999;
njp "cte2";
wait 0.1;
jmp "wat1";
"cte2":;
mov %-1 a;
ijp "cte1";
end "main";

func "enemy1";
var b;
mov b #-1;
mov #-1 999;
tp 0 180;
mul b -10;
spd 0 b;
"move":;
go 5;
CW 1;
jmp "move";
wait 10000;
end "enemy1";

【少儿编程】scratch大师级教程-少儿编程网【少儿编程】scratch大师级教程-少儿编程网

顺便波与粒子的境界的代码.有性趣可以试着解读一下吧(

func "main";

cte "satori";

end "main";

func "satori";

push 1;

health 1000;

tp 0 100;

ctm 2;

vis 1;

var r radd;

mov r 0;

mov radd 0;

gpush 1;

gpush 1;

"shoot":;

add radd 3;

add r radd;

mov #1 r;

mov #2 0;

cte "bullet";

cte "bullet";

cte "bullet";

cte "bullet";

cte "bullet";

"wait":;

mov %1 #2;

sub %1 5;

ijp "wait";

jmp "shoot"

end "satori";

func "bullet";

var r rget;

mov rget #1;

add #2 1;

rem r 5;

mul r 72;

tp 0 100;

ctm 8;

vis 1;

add r rget;

angle r;

"move":;

go 5;

jmp "move";

end "bullet";

【少儿编程】scratch大师级教程-少儿编程网

scratch大师级教程到此结束

本文链接:【少儿编程】scratch大师级教程

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:少儿编程网,谢谢!^^


*文章为作者独立观点,不代表少儿编程网立场
发表评论

坐等沙发
相关文章
编程少年丨余疆海:个性十足却不失温度
编程少年丨余疆海:个性十足却不失温度
为什么大家都建议学习少儿编程要从Scratch开始?
为什么大家都建议学习少儿编程要从Scrat…
孩子学完各个阶段的编程课程能够参加哪些比赛?
孩子学完各个阶段的编程课程能够参加哪…
我的孩子从来没有接触过编程,0基础能不能学?
我的孩子从来没有接触过编程,0基础能不…
【精选作品】如何通过Scratch让小猪跑起来?(内附火影粉丝巨献,必看)
【精选作品】如何通过Scratch让小猪跑起…
0基础的孩子应该怎样学习少儿编程?
0基础的孩子应该怎样学习少儿编程?
学生都说我是编程界的“吴彦祖”