
2.1 课程学习
2.1.1 相关知识与概念
1. 设置变量的显示模式
右键单击舞台区的变量,打开变量显示模式菜单,我们可以看到变量的显示模式有3种,分别是正常显示、大字显示和滑杆,如图2-2所示。

图2-2 变量的3种显示模式
正常显示模式:此模式为Scratch默认的变量显示模式,选中此模式后,舞台上可以显示变量名和变量值,方便程序编写者跟踪、观察某些变量的值在程序运行过程中是否正确,如果是局部变量,则还会显示所属的角色名,如图2-3所示。变量的值需要使用变量类积木才能修改。

图2-3 正常显示模式
大字显示模式:选中此模式后,舞台上只显示变量值,变量名将消失,变量名可以在程序界面中显示,方便程序使用者了解变量在程序运行过程中具体的数据,如图2-4所示。变量的值也需要使用变量类积木才能修改。

图2-4 大字显示模式
滑杆显示模式:选中此模式后,变量在正常显示模式的基础上多了一个滑杆,使用者可以滑动滑块改变变量的值,也可以使用“变量”分类的积木改变变量的值,如图2-5所示。使用这种模式,在程序运行过程中,使用者可以动态地调整变量的值,十分有利于程序使用者与Scratch的即时交互。

图2-5 滑杆显示模式
练一练
打开Scratch,根据以上方法,尝试将变量的显示模式改变为滑杆模式。
2. 修改滑块的取值范围
右键单击舞台区“我的变量”,选择显示模式为“滑杆”,此时再次右键单击“我的变量”打开显示模式菜单,会发现多了“改变滑块范围”选项,如图2-6所示。

图2-6 “改变滑块范围”选项
它可以给变量指定一个范围,设定其最大值和最小值,确定后,变量的数值只能在这个范围内改变,可以保证输入数值的有效性,如图2-7所示。

图2-7 设定滑块的最小值、最大值
想一 想
变量的3种显示模式各有什么特点?分别适用于哪些情况?
2.1.2 准备工作
1. 设置舞台背景
保留默认的白色背景。
2. 设置角色
因为角色在舞台出现的最大长度和舞台长度一致,所以需要绘制一个与舞台同样长的红色矩形图块,并将其重命名为“被减数”,用来表示“被减数”的变化情况,如图2-8所示。

图2-8 绘制角色“被减数”
用同样的方法绘制绿色、蓝色两个矩形,分别重命名为“减数”“差”,表示减数、差的变化。
3. 新建变量
新建两个全局变量“被减数”“减数”,用于记录被减数、减数的值。
2.1.3 用滑块控制矩形的长度
本案例中需要用滑块控制“被减数”和“减数”两个变量的值,矩形角色的长度也要随之变化,现以“被减数”为例介绍程序编写思路,主要的编程思路如下。
(1)调整角色的中心点到矩形的右边缘,如图2-9所示。

图2-9 调整角色的中心点到矩形的右边缘
(2)设置变量“被减数”的显示模式为“滑杆”模式,最小值为默认的值0,因为舞台的宽度是480,所以将最大值设置为480。
(3)初始状态下,角色在舞台左边缘,所以,将x坐标设置为-240,如设置“被减数”的初始位置为(-240,80)。
(4)当变量“被减数”的值为0时,矩形在舞台的最左边,而矩形的中心点在右边缘,所以此时在舞台上看不到矩形(或者只看到一点边缘,根据中心点的设置而定),如图2-10所示。

图2-10 变量最小时矩形在舞台上的位置
当变量增大到480时,矩形就移到了舞台的最右边,因为矩形的长度和舞台的长度是一致的,所以此时在舞台上能够看到完整的矩形,如图2-11所示。

图2-11 变量最大时矩形在舞台上的位置
“被减数”的范围为0~480,而舞台x坐标的范围是(-240,240),所以将“被减数”减去240,以保证“被减数”为0时,图块能位于屏幕最左端。
(5)要实现用文字显示出“被减数”值的变化,还需要使用运算类的“连接××和××”积木,连接文字“被减数”和变量“被减数”的值,再把它组合到外观类的“说××”积木中。
角色“被减数”矩形的长度随着变量“被减数”值的变化而变化的完整代码如图2-12所示。

图2-12 角色“被减数”矩形的长度随着变量“被减数”值的变化而变化的完整代码
试一试
完成角色“减数”矩形的长度随着变量“减数”值的变化而变化的代码设计。
2.1.4 实现差的变化
想要实现差的值跟随变量“被减数”和“减数”的变化而变化,同时角色“差”矩形的长度也随之变化,编程思路如下。
(1)用同样的方法把角色“差”的中心点修改为矩形的右边缘。
(2)设置角色的初始位置为“x:-240 y:-100”。
(3)代表角色“差”的矩形在舞台上的运动与代表角色“被减数”的矩形在舞台上的运动类似,所以也需要将差值减240,才能保证当差等于0时,矩形显示在舞台的最左边。
(4)用文字显示差的变化,需要先用被减数减去减数求出差值,然后再连接文字“差”和差值,再组合到“说××”积木中,积木如图2-13所示。

图2-13 文字显示差的变化积木块
角色“差”的完整代码如图2-14所示。

图2-14 角色“差”的完整代码
想一想
1. 如果把“差”也设置为一个变量,使用哪种显示模式更合适?为什么?
2. 变量处于滑杆模式时,除了能用滑块修改变量的值,还能用积木修改变量的值,这些积木是___________。