精选教程丨掌握了这个功能,才算真正的Scratch高手!

网友投稿 2018-05-05 22:56

本文原载于卡搭论坛,作者:灵问

教程内容:云变量的介绍及使用

适用范围:Scratch进阶

【一、创建一个云变量】

云变量和普通的变量大致是相同的,如果你的游戏非常寂寞的话,它只是一个普通的变量。但在卡搭上你是不会寂寞的,只要你愿意在程序上面下功夫(比如为了知道云变量的信息看我这篇乱糟糟的心得),你的程序就会有源源不断的人来拜访(当然如果你邀请你的各路朋友一起来玩就更棒了),这个时候,云变量就会展现出它独特的魅力——数据交流

我假定你已经知道了怎么删除scratch里那只胖猫了。并且假设你已经懂得如何丢上一架高大上的战斗机,并把屏幕涂成黑色,开始一场史诗大战了!

https://cdn.china-scratch.com/timg/180507/22561555X-0.jpg

然后我还假定你知道云变量就是创建变量的时候打上下图中的这个勾:

https://cdn.china-scratch.com/timg/180507/2256154C2-1.jpg

然后它就会变成这样,变量名字之前有一个小云朵,很萌的样子:

https://cdn.china-scratch.com/timg/180507/225615L54-2.jpg

我们试试操作这个变量吧,考虑到你是一个很有基础的积木搬运者,那我们写的稍微复杂点应该也没什么问题:

https://cdn.china-scratch.com/timg/180507/22561544P-3.jpg

我们理解一下上面的代码,重复执行,如果鼠标键被按下,就把角色的 x 坐标移动到鼠标的 x 坐标,并更新云变量为 x 坐标位置,否则,就移动到云变量指定的位置。

我们也要理解一下卡搭的服务器,为这么多热爱编程的朋友服务,它真的很辛苦,所以在我们操作云变量的时候,如果在循环中加上一个等待延时,就像上面那行我们没有拖进循环的代码那样,它会非常高兴。(一般来说,变量内容越多,延时就适量增大一点)

好了,这就是一个初步的云变量操作方式,实际上它真的可以工作,比如:

https://cdn.china-scratch.com/timg/180507/2256152007-4.jpg

就这么简单?是的,云变量操作起来真的不复杂,何况研究云变量的你可是一个很有学习能力的人!

【二、一人一架飞机的实现】

假设你和你的伙伴都是飞机爱好者,想肩并肩一起翱翔在天际,那应该怎么实现呢?

我们知道在单机模式下,我们可以设置两个飞机角色,一个接受 asdf 的控制,一个接受“上下左右”的控制,但这种控制模式需要两个人同时在一台机器一个键盘上,这非常不适合轻度社交恐惧症的我们啊~!好吧,我们计划一人一台机器,各自在自己的电脑上登录游戏,操作各自的飞机,这下总归满意了吧。

那应该怎么实现呢?我们假定你对克隆体了解的不算少,我们先克隆两架飞机起来,然后再创建几个变量和另一个云变量——云变量一人一个,平等合作,怎么样?

1.纠正变量名称;(随便给变量名称命名可不是什么好习惯,至少你要保证自己不会忘记这个变量是用来做什么的。)

https://cdn.china-scratch.com/timg/180507/2256153129-5.jpg

2.(用参杂着中文、数字、英语的名称)创建第二个云变量;

注意:一个程序最多有10个云变量的配额,但我们考虑到之后程序的扩展,所以大家节省点使用。

https://cdn.china-scratch.com/timg/180507/2256154491-6.jpg

3  以私有变量的方式创建如下两个变量:飞机编号、仓库标记(这样的变量对于克隆体来说,是各自独立的);

https://cdn.china-scratch.com/timg/180507/2256156192-7.jpghttps://cdn.china-scratch.com/timg/180507/2256164031-8.jpg

4.出于对美观和运行效率的要求,我们把变量都取消显示。

https://cdn.china-scratch.com/timg/180507/22561B025-9.jpg

5.出于对美观与识别的要求,我们给飞机增加一个造型

https://cdn.china-scratch.com/timg/180507/22561B4P-10.jpg

6.然后增加一个变量,取名叫 : 当前控制; 这个变量就是普通的变量,既不允许是云变量,也不允许是私有变量。

https://cdn.china-scratch.com/timg/180507/2256162114-11.jpg

很好,准备工作完毕,我们来创建克隆体,请坐稳扶好,代码并不复杂(点击图片放大查看)。

https://cdn.china-scratch.com/timg/180507/2256162564-12.jpg

左边舞台是运行后的效果,如果理解了上面的代码,就继续看下一个单元,否则请参考下一自然段。

代码的目标是创建四架飞机,两种造型各两架,小的出现在屏幕右上,作为控制角色选项,特征为  仓库标记 = 1;大的飞机作为展示效果,仓库标记 = 0;造型不同的飞机有不同的编号(1  /  2)。我们重复两次,在指定的地方克隆好,然后将主体隐藏起来。

然后我们将“当前控制”变量初始化,设置为0,然后设置一个点击事件,当角色是“小飞机”的时候,我们将当前控制换为该飞机的编号。

猜到我的思路了吗?

https://cdn.china-scratch.com/timg/180507/22561B352-13.jpg

【三、发送广播,开始游戏!】

我们在延时 0.5秒之后(确保所有角色都已经创建成功),发送广播,让所有角色——本体和克隆体们,聆听我们的呼唤,  进入游戏  !

然后针对这个 进入游戏 的广播,我们分成两段处理:

https://cdn.china-scratch.com/timg/180507/22561C935-14.jpg

我们知道本体的编号等于0,而且本体只有一个,所以我们在这里进行控制判断,如果 当前控制 = 1 且鼠标键被按下,则更新1号云变量为鼠标x坐标,如果 当前控制 = 2 且鼠标键被按下,则更新2号云变量为鼠标x坐标,这是上面代码块的前半截。

如果编号不等于0,且仓库标记为0的,则反复将自己的位置设置为云变量指定的位置,这是上面代码的下半截。

是不是很清晰,是不是很明了,是不是要再看两遍。看明白之前不许走~!

运行起来是这样的,你可以和朋友试试:

https://cdn.china-scratch.com/timg/180507/22561643R-15.jpg

好了,你可以按照这个方式创建三个、四个甚至更多的飞机进来,但我们这样就满足了吗?难道你不想和你的朋友PK一下吗?难道你看到了这里还不打算点个赞吗?

剩下的,下次聊。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com