傲梦知识Scratch精品教程用
这一章我们将介绍贴吧上的一个大师级的scratch新玩法——用scratch写自己的编程语言
其实也不叫介绍,就是给大家用的
下面我们介绍一下main方法
main函数,又称主函数,是程序执行的起点.main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数.main函数正是迎合人们的思考方式而生成的而非必定的模式.有主有次,执行起来条清缕析;既可将程序模块化又实现了一个闭合的整体.main函数不是从开始产生就不变的,不同语言给出了不同的看法
在这款scratch编程语言里
目前能够编写的代码:
特殊变量
!tX!tY!tRot!plX!plY!plRot!pldis
$num代表全局变量
&num代表局部变量
#num代表在全局栈内位置
%num代表局部栈内位置
一次只能定义三个变量
varA定义变量
potA[x]定义变量A的变量表内位置为[x]
garA定义全局变量
pushAB入局部栈#-1=B
gpushAB入全局栈#-1=B
del删除后一个局部栈内数字
gdel删除后一个全局栈内数字
movAa
addAa
subAa
mulAa
divAa
remAa
intA
修改;+-*/%round
incA
decA
A++--
sinA
cosA
tanA
asinA
acosA
atanA
sqrtA
powEA
logA
absA
rndAab将A随机为int(a,b)
cntAa连接Aa-->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的进程
waitA等待A秒
print"a"b输出ab秒
tpxy传送到x,y
movetimexy在times内move到x,y
spdxaddyadd将x,y增加
gostep移动step步
anglea将角度设为a
anpl将角度设置为自机狙
CWa顺时针旋转a度
ACa逆时针旋转a度
cosa将外观变为a
colhv将改变色相,明度
sizea改变大小为a%
laydowna下移a层
laytop移动到顶层
visitableaa=0隐藏;a!=0显示
来个简单的例子,这一段代码会生成10个enemy并在x=0的地方排列一下
func"main";
vara;
mova10;
push666;
gpush666;
jmp"cte2";
"cte1":;
deca;
mov#-1a;
cte"enemy1";
"wat1":;
mov%-1#-1;
sub%-1999;
njp"cte2";
wait0.1;
jmp"wat1";
"cte2":;
mov%-1a;
ijp"cte1";
end"main";
func"enemy1";
varb;
movb#-1;
mov#-1999;
tp0180;
mulb-10;
spd0b;
"move":;
go5;
CW1;
jmp"move";
wait10000;
end"enemy1";
Scratch精品教程-用scratch写编程语言
顺便波与粒子的境界的代码.有性趣可以试着解读一下吧(
func"main";
cte"satori";
end"main";
func"satori";
push1;
health1000;
tp0100;
ctm2;
vis1;
varrradd;
movr0;
movradd0;
gpush1;
gpush1;
"shoot":;
addradd3;
addrradd;
mov#1r;
mov#20;
cte"bullet";
cte"bullet";
cte"bullet";
cte"bullet";
cte"bullet";
"wait":;
mov%1#2;
sub%15;
ijp"wait";
jmp"shoot"
end"satori";
func"bullet";
varrrget;
movrget#1;
add#21;
remr5;
mulr72;
tp0100;
ctm8;
vis1;
addrrget;
angler;
"move":;
go5;
jmp"move";
end"bullet";
Scratch精品教程-用scratch写编程语言
Scratch的教程我们会一直更新,包含了游戏制作,数学知识,也可以扫我们右侧的二维码所要打包的教程文件.
其实也不叫介绍,就是给大家用的
下面我们介绍一下main方法
main函数,又称主函数,是程序执行的起点.main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数.main函数正是迎合人们的思考方式而生成的而非必定的模式.有主有次,执行起来条清缕析;既可将程序模块化又实现了一个闭合的整体.main函数不是从开始产生就不变的,不同语言给出了不同的看法
在这款scratch编程语言里
目前能够编写的代码:
特殊变量
!tX!tY!tRot!plX!plY!plRot!pldis
$num代表全局变量
&num代表局部变量
#num代表在全局栈内位置
%num代表局部栈内位置
一次只能定义三个变量
varA定义变量
potA[x]定义变量A的变量表内位置为[x]
garA定义全局变量
pushAB入局部栈#-1=B
gpushAB入全局栈#-1=B
del删除后一个局部栈内数字
gdel删除后一个全局栈内数字
movAa
addAa
subAa
mulAa
divAa
remAa
intA
修改;+-*/%round
incA
decA
A++--
sinA
cosA
tanA
asinA
acosA
atanA
sqrtA
powEA
logA
absA
rndAab将A随机为int(a,b)
cntAa连接Aa-->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的进程
waitA等待A秒
print"a"b输出ab秒
tpxy传送到x,y
movetimexy在times内move到x,y
spdxaddyadd将x,y增加
gostep移动step步
anglea将角度设为a
anpl将角度设置为自机狙
CWa顺时针旋转a度
ACa逆时针旋转a度
cosa将外观变为a
colhv将改变色相,明度
sizea改变大小为a%
laydowna下移a层
laytop移动到顶层
visitableaa=0隐藏;a!=0显示
来个简单的例子,这一段代码会生成10个enemy并在x=0的地方排列一下
func"main";
vara;
mova10;
push666;
gpush666;
jmp"cte2";
"cte1":;
deca;
mov#-1a;
cte"enemy1";
"wat1":;
mov%-1#-1;
sub%-1999;
njp"cte2";
wait0.1;
jmp"wat1";
"cte2":;
mov%-1a;
ijp"cte1";
end"main";
func"enemy1";
varb;
movb#-1;
mov#-1999;
tp0180;
mulb-10;
spd0b;
"move":;
go5;
CW1;
jmp"move";
wait10000;
end"enemy1";
Scratch精品教程-用scratch写编程语言
顺便波与粒子的境界的代码.有性趣可以试着解读一下吧(
func"main";
cte"satori";
end"main";
func"satori";
push1;
health1000;
tp0100;
ctm2;
vis1;
varrradd;
movr0;
movradd0;
gpush1;
gpush1;
"shoot":;
addradd3;
addrradd;
mov#1r;
mov#20;
cte"bullet";
cte"bullet";
cte"bullet";
cte"bullet";
cte"bullet";
"wait":;
mov%1#2;
sub%15;
ijp"wait";
jmp"shoot"
end"satori";
func"bullet";
varrrget;
movrget#1;
add#21;
remr5;
mulr72;
tp0100;
ctm8;
vis1;
addrrget;
angler;
"move":;
go5;
jmp"move";
end"bullet";
Scratch精品教程-用scratch写编程语言
Scratch的教程我们会一直更新,包含了游戏制作,数学知识,也可以扫我们右侧的二维码所要打包的教程文件.