少儿编程Scratch3.0教程——09 变量积木(基础知识)(文字版)



终于来到了Scratch3.0中的最后一个积木类型,变量积木类型。变量是什么?可能你在学校中学习过加法交换律,a + b = b + a ,其中a和b表示任意的两个数字,可以是整数1,2,3,也可以是小数1.1,2.2,3.3等等,在这个公式中的a和b就叫做变量。


我们每个人都会有一个属于自己的名字,你可能叫张三,他可能叫李四,还有一个人可能叫王五,而名字就是一个变量。除了名字,你的年龄会随着时间不断的增长,年龄也是一个变量。


变量可以用于表示具有不同值的内容,在Scratch中,这个值可以是字符,也可以是数字。


这篇文章主要分为3个部分:

1、变量

2、列表

3、克隆与变量


第一,变量


建立变量


在Scratch的变量分类中,你可以看见一个“建立一个变量”的按钮,点击一下,就会弹出一个新建变量的窗口,在这里你就可以创建一个新变量。


建立一个变量按钮


新建变量弹窗


在弹窗中,你可以为新变量取一个名字,通常你需要给变量取一个有意义的名字,例如刚刚说的“名字”或者“年龄”,或者你想要在打蝙蝠游戏中知道还剩多少蝙蝠,可以新建一个变量叫做“剩余蝙蝠数量”。


除了给变量取名字,还有两个选项,适用于所有角色和仅适用于当前角色。


当你选择适用于所有角色时,这种变量叫做全局变量


全局变量是舞台和所有角色都共用的变量,它们可以共同获得这个变量值,并且去修改它。例如你的游戏中有一个记分牌,不论场景和角色如果变换,它都是唯一的,这时你应该将它新建为全局变量。


当你选择仅适用于当前角色时,这种变量叫做局部变量


它只被当前角色所拥有,只有当前角色可以获取变量值,并且修改它,其他角色看不见也不能修改。例如你拥有自己单独的名字和年龄,不受其他人的影响,所以它们应该新建为局部变量。


所以,当你需要判断一个变量应该新建为全局变量还是局部变量时,你需要去问自己,这个变量应该属于谁?


修改变量


新建变量以后,你就可以对它进行修改。通过将...设为...积木和将...增加...积木,你可以修改所选的变量值。



将...设为...积木可以改变变量值,输入框中可以填入字符和数字,还可以是侦测分类中计时器这样的圆形积木。


例如,你可以新建两个变量,名字和年龄,当点击角色时就设置它们,然后让角色说出来进行自我介绍。



将...增加...积木只有当变量值为数字时才起作用,使用它可以增加或者减少变量值。


例如,下面的积木你每点击一次小猫就可以让它的年龄增加1。



全局变量和局部变量效果演示


显示与隐藏变量


当你勾选变量前面的复选框时,该变量就会显示在舞台上。全局变量只会显示变量名称和变量值,局部变量会显示角色名称+变量名称和变量值。这样你可以很方便的区分它们,并且看见各个变量的状态值。



除了勾选变量积木前面的复选框,你还可以通过显示变量...积木和隐藏变量...积木来达到同样的效果,这样你就可以在游戏中根据需要动态的显示和隐藏变量。



变量在舞台上有三种不同的显示方式,分别是正常显示,大字显示和滑杆。当你双击舞台上的变量,或者鼠标右键点击它时,就可以进行切换。



当显示方式切换为滑杆之后,在使用鼠标右边点击还可以设置滑杆的范围,这样你就可以利用它来调节游戏的难度或者速度。



修改变量名和删除变量


在所有变量积木的下拉选择框中,都有一个修改变量名和删除变量选项,当你先选中需要修改或删除的变量之后,再选择修改变量名或删除变量,就可以修改变量的名称或者将它删除。




第二,列表


当你只需要记住自己的名字和年龄时,使用变量就可以达到目的,但如果你是班级的老师,需要记住几十个学生的名字和年龄,在使用变量来记录,可能就不太适合了,这时列表就可以排上用场了。


想象一下,当你去超市买东西时,结完账收银员都会给你一个购物清单,这个清单就是一个列表,清单上你所购买的每个东西,就是列表里面的内容。


当你有一堆玩具需要整理时,你可以找来一个大筐,然后将玩具全部放进里面,Scratch中的列表就是这个大筐,它实际上是一种特殊的变量。与普通变量类似,在Scratch的列表中,也可以填入字符或者数字。


建立列表


同建立变量一样,在Scratch的变量分类中,你可以看见一个建立一个列表的按钮,点击一下,就会弹出一个新建变量的窗口,然后在窗口中填写列表的名称和适用范围。



建立一个列表


新建列表弹窗


修改列表


在Scratch中有两种方式可以对列表进行修改,第一种最简单的方式,直接从舞台上进行修改。


当你新建一个列表后,可以在舞台上看见一个列表框。框中的每一行就是列表中的一样东西,叫做条目。在条目的左侧,会一个从1开始递增的数字,叫做索引。在列表框底部中间,会显示当前列表的长度,也就是条目总数。列表中的条目、索引和长度实际上都是一个变量。


鼠标按住底部右侧的“=”号,可以拖动鼠标调整列表框大小。


点击列表框底部左侧的“+”号,就可以增加条目,如果你需要连续添加条目,在输入完当前条目内容后,点击回车键,就会自动生成下一个条目框。双击列表框中的某个条目,可以对其内容进行修改。双击之后,在条目的右侧会有一个白色的小叉,点击小叉就可以删除条目。



如果你的条目比较多,你还可以通过鼠标右键点击列表框,然后将提前准备好的内容批量导入进列表。导入内容的格式是一个txt文件,每一行就是一个条目内容。


同样,你还可以将列表中的已经编辑好的条目,通过鼠标右键点击列表框,然后导出为txt格式的文件。



第二种方式,就是通过积木块来进行修改。


首先,你可以使用将...加入...积木和在...的第几项前插入...积木来为列表添加条目。


它们的区别是,使用...加入...积木来添加条目,新增的条目会放在列表的最后。而如果你需要为新增的条目指定位置,就需要使用在...的第几项前插入...积木,其中的第几项就是列表现在条目的索引值。


例如,上面的购物清单中有4个条目,如果你希望在第二行增加一个咖喱块,那就可以使用购物清单的第2项前插入咖喱块



接着,如果你需要修改某个条目的内容,就可以使用将...的第几项替换为...积木,它会用第二个输入框中的内容去替换所指定索引的原有内容。


例如,如果你不喜欢吃胡萝卜,就可以将列表中的第5项胡萝卜替换为酸奶。



接着,你可以使用删除...的第几项积木和删除...的全部项目积木来删除列表中的条目。



它们的区别是,删除...的第几项积木只会删除指定索引的条目,而删除...的全部项目积木会像购物APP里面清空购物车一样,删除所有条目。



使用列表


我们新建列表增加条目之后,最终的目的是希望能够将里面的内容取出来使用。


首先,你可以通过...的第几项积木,来获取指定索引的条目内容。


例如,如果你使用购物清单的第1,就会返回土豆。



接着,你可以使用...中的第一个...的编号积木,来获取列表中某个条目内容的索引号,如果列表中有多个相同的条目,它会返回第一个匹配的索引号。


例如,如果你使用购物清单中第一个鸡胸肉的编号,就会返回4。



接着,如果你想知道当前列表的总共有多少个条目,你就可以使用...的项目数积木。


例如,现在购物清单列表的项目数就是5。


最后,如果你想知道当前列表中是否已经放入了某样东西,你就可以使用...包含...?积木,如果列表中包含了输入框中的内容,就会返回true,否则就会返回false。


例如,现在购物清单中已经有土豆了,但是还没有豌豆。



思考一下,如果你想知道列表中总共有哪些东西,应该怎么办?你可以暂停一下,自己想一想需要如何实现。


你只要将列表积木配合变量和重复执行积木,就可以循环得到所有的列表条目。



并行列表


很多时候,你可能不止需要一个列表,而是需要将多个列表组合起来使用。


例如,我们之前做的智力问答游戏,你可以建立两个列表,一个存放问题,一个存放答案,并且将它们通过索引进行一一对应,这样你就可以通过索引值取出一组相对应的问题和答案。


例如,当我用...的第几项积木来获取索引为1的问题和答案时,就可以得到问题“奥林匹克运动发祥地是哪个国家?”和答案“希腊”。



你可以自己尝试通过上面介绍的方式来修改智力问答游戏。


显示和隐藏列表


和变量积木一样,你也可以通过勾选列表前面的复选框,或者通过显示列表...积木和隐藏列表...积木将列表显示或者隐藏起来。





修改变量名和删除变量


和变量积木一样,在所有列表积木的下拉选择框中,都有一个修改列表名和删除列表选项,当你先选中需要修改或删除的列表之后,再选择修改列表名或删除列表,就可以修改列表的名称或者将它删除。



第三,克隆与变量


我们在控制积木中学习过,当需要使用克隆体时,只需要对某个角色使用克隆...积木来克隆它,然后再利用当作为克隆体启动时积木去控制克隆体,让它完成你希望它做的事情。


但是你在这样操作时,会遇到一个问题。当作为克隆体启动时积木会对所有克隆体生效。


例如,你在使用当作为克隆体启动时积木让克隆体说话时,所有克隆体都会说话,并且内容一样。



如果你想要区分每个克隆体,让它们做不同的事情,应该怎么办?想要解决这个问题,就需要利用局部变量配合克隆一起使用。


首先,你可以建立一个局部变量叫做编号。



接着,在每次使用克隆积木之后,都将编号增加1。我们知道克隆体会继承原始角色的坐标、大小、方向等等这些属性。类似的,克隆体也同样会继承原始的角色的局部变量,以及该变量被克隆时的变量值。



例如,当使用克隆...积木时,原始角色的编号为1 ,此时新的克隆体也会有一个叫做编号的变量,并且值为1。


每个克隆体的编号变量都是属于自己的局部变量,只有自己可以修改和查看。


例如,当克隆体继承编号以后,你将原始角色的编号修改为10,这时克隆体的编号还是为1。如果克隆了3次,把其中一个克隆体的编号修改为9,不会影响另外两个克隆体的编号值。



所以,利用这种克隆加变量的方式,你就可以区分不同的克隆体,让它们完成不同的任务。


例如,让角色和克隆体都说出自己的名字。



以上就是变量积木的全部内容,变量不仅是Scratch,也是所有编程语言(例如Python,Java,C等等)最重要的内容之一。它是对现实世界的一种抽象描述,通过一个符号来表示一类事物。


你还可以将多个变量组合在一起构成一个更大的变量,称为对象(这个涉及变量之间的引用,Scratch中暂不支持)。对象里面的每一个变量都是它的一种属性。例如,人就是一种对象,眼耳口鼻就是人身上的属性。对象与对象之间还可以继续抽象组合,从而创造出整个世界。

同样,你需要通过大量的练习来熟悉变量积木的使用,如果你在学习过程中遇到问题无法解决,你可以扫码关注我的微信公众号“梦世界”给我留言,我会对你的提问一一进行解答。



在下一篇文章中,我将会引导你利用上面的内容,来改造我们之前完成的游戏,让它们能够变得更简洁更有趣,我们下节课再见。


Talk is cheap. Show me the code...




如果你看完以上内容,对少儿编程感兴趣,有初中以下想学习编程或者数学思维课的小朋友,欢迎联系。如果你有Web应用系统、手机APP、微信小程序等软件开发需求,也欢迎与我联系。期待能与你共同进步。。。

0条留言

留言