【scratch大师级教程】

发表在    大佬帝国™【官方】 07-01 07:25:53

34 25121 33

目录

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

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

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

第四章:用scratch写编程语言

第五章:G-Editor的实际运用


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

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

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

接下来是实例:

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

b41a192442a7d9335bb9af08a54bd11372f001e5

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

1fa65dfbfbedab64987df9bbff36afc378311ee3

火柴人克隆体须调用第一次回答的内容,即第几个火柴人说话。我们可以新建一个变量,再用脚本将变量设为第一次回答的内容。再利用脚本调用这个变量
不明真相的吃瓜群众一号:“为什么在调用时不直接调用第一次回答的内容,反而还得调用与第一次回答内容相同的变量呢?”
孔明:“因为有第二次询问。Scratch在侦测部分的脚本就有‘回答’这一变量。但它会设为最新一次的回答。我们的脚本里询问‘第几个火柴人说话’的结果是第一次回答,而还有一个第二次询问,即询问火柴人说话的内容。在调用回答的时候调用的时候‘回答’这一变量已经设为第二次的了。所以我们要想调用第一次回答,必须用变量将它设为常数(即不可以变动的字符串或数字)”

e7c922a85edf8db1f6acc01f0123dd54574e7470

49b6a8096b63f6248e6386788f44ebf81a4ca33d


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

ec8507dfa9ec8a13fee3d780ff03918fa1ecc07b

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

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

今天我将向大家介绍 如何在scratch里输入
矢量中文字体
众所周知,自从scratch 2发布后,MIT官方就去掉了中文输入,中国用户无法在scratch里输入中文,着实是一件令人头疼的事情。
好在,scratch支持导入,我们可以借助其他工具来达到这个目的。
PS:本次教程只针对矢量,位图可以直接在网络上输出字体再导入。

本章介绍两种不同的方法。
方法1:准备工具:
1.Scratch 2
2.AI (Adobe illustrator)PS:建议下载CS6 CC或CC2014 CC2015版本,本次演示用AI CC 2015
AI CC 2015下载链接:http://yunpan.cn/cQIwE2U3GsfEv
提取码:cfd1
此分享来自 @你见我的小熊码 感谢这位吧友的分享 [原帖地址:http://tieba.baidu.com/p/3869972843 ]
下面开始正式介绍

1.下载并安装AI(建议下载LZ在1楼提供的链接)
9a96ae0e7bec54e7a7c1386cb1389b504fc26a38

本次教程用AI CC 2015演示
AI CC 2015下载链接:http://yunpan.cn/cQIwE2U3GsfEv
提取码:cfd1
此分享来自 @你见我的小熊码

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

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

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

这是方法一,下面介绍第二种方法。

方法二:

准备工具:

1.G-Editor

2.性能较好的电脑

首先先介绍一下G-Editor

G-Editor是一个优雅且高效的Scratch衍生版,由我和众多编程爱好者研发。

http://project.mybluelemons.com/ge/index.html这里是G-Editor官网,可以下载最新版本。

有了G-Editor就可以直接输入矢量中文了,无需任何工具!!!!!

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

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

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

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

69b218f41bd5ad6efc378da088cb39dbb4fd3cd3

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

a07cbb6eddc451daa238e5a1bffd5266d21632d3

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


666d47da81cb39db930e8e1cd9160924a91830d3

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

16c7cbc451da81cb1d286a875b66d0160b2431d3

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

3a622fdbb6fd5266f7e5d55ea218972bd60736d3

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

8272a0fd5266d01621d777629e2bd40737fa35d3

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

0d544466d016092482eb4b51dd0735fae4cd34d3

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

e9cfc6160924ab18bdd8087d3cfae6cd79890bd3

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

6bbf1f24ab18972bfff4e980efcd7b899c510ad3

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

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

10b1812bd40735facb3ea7f397510fb30d2408d3

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

2c82c20735fae6cd557a422b06b30f2440a70fd3

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

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

第四章:用scratch写编程语言

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

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

先放一张main方法的代码

76b8648b4710b912eed30ab5cafdfc0393452290

下面我们介绍一下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";

745508178a82b901160938787a8da9773812ef7b2c82c20735fae6cd46d0532a06b30f2443a70fba

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

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";

5e74f11190ef76c63067d5669416fdfaae51676b

好的本章到此结束,期待第五章哦

第五章:G-Editor的运用

这一章我来跟大家介绍一下一款很6的scratch衍生版——G-Editor(下文简称GE)

GE是蓝柠、Ambition、小盖等工作室联合开发(作者是开发部主力哦)

QQ图片20170717113924

这是美美哒的logo。

首先我们先进入GE的官方网站:

http://p.ble.ac.cn/ge/

QQ截图20170717114221

GE有两个版本,一种是软件版,需要下载。一种是在线版,可以进行在线编辑。软件版的功能较多所以优先推荐软件版,点击“下载G-Editor“即可下载最新发布的安装包(版本号:1.2.1beta4)

在此教程中作者用的版本是1.3.03(内部成员当然可以用最新的啦)1.3还没有发布所以大家用不着

安装完成后会在桌面显示图标QQ截图20170717114611

双击打开会出现这个界面

QQ截图20170717114701

这是主界面,可以看到除了“启动编辑器”外还有几项功能。

大家都知道scratch文件的后缀是“.sb2”GE开放了.sb2文件转.Flash和.exe文件的功能,可以将文件转换为另外一种形式。

“修复工具”的主要功能是帮助用户安装Adobe Air辅助插件以及白屏修复的功能。切记使用GE之前一定要安装最新版的Adobe Air

接下来我们点击“启动编辑器”就会出现熟悉的scratch界面。

QQ截图20170717115114

(第五章未完待续,请持续关注)

登录或注册后发布评论