- Scratch少儿编程思维训练:培养孩子的逻辑思维和计算思维能力
- 张硕 张晨曦编著
- 2384字
- 2025-04-11 08:22:11
3.1 移动
我们让角色在舞台上移动起来。比如图1-21中的程序就能实现小球的移动和反弹。现在请换成“小猫”角色(在角色列表中单击“角色1”),重复1.5节的操作,观看执行效果。
角色移动涉及角色在舞台上的位置,一般都是从某个位置移动到另一个位置。那么,怎么确定这些位置呢?这是通过舞台的坐标系来实现的。
3.1.1 舞台的直角坐标系
为了精确地确定角色在舞台中的位置,Scratch给舞台嵌入了一个直角坐标系,如图3-1所示。尽管它并不在舞台上显示出来,但它一直是存在的。这个坐标系有两个坐标轴:x轴(横向)和y轴(纵向)。坐标轴上有很多刻度,就像尺子上的刻度那样(请在家里找一把尺子出来,仔细看看它的刻度)。把舞台中央的区域D放大,如图3-2所示,可以看到各个位置的坐标。

视频3-1 舞台的直角坐标系

图3-1 舞台的直角坐标系

图3-2 图3-1中的区域D放大后
我们用(x,y)来表示一个位置的坐标,其中x和y分别称为这个位置的x坐标和y坐标。舞台中央的坐标是(0,0)。舞台右半边x轴上的刻度,按从中心往右的次序,依次为1,2,3,4,…,240。舞台左半边x轴上的刻度,按从中心往左的次序,依次为-1,-2,-3,-4,…,-240。舞台上半部y轴上的刻度,按从中心往上的次序,依次为1,2,3,4,…,180。舞台下半部y轴上的刻度,按从中心往下的次序,依次为-1,-2,-3,-4,…,-180。
可以看出,位于y轴右边的x坐标都是正的,位于y轴左边的x坐标都是负的。位于x轴上面的y坐标都是正的,位于x轴下面的y坐标都是负的。
在图3-2中,A点的位置可以用坐标(4,3)来表示,其中4是x轴上的刻度,称为A点的x坐标;3是y轴上的刻度,称为A点的y坐标。类似地,B点的坐标是(6,-4),C点的坐标是(-4,-2),D点的坐标是(-7,4)。
可以看出,这个坐标系把舞台划分成了361条水平线和481条垂直线。水平线和垂直线的交叉点都可以用于定位。其中的任何一个位置(点)都可以用它的坐标(x,y)来表示。
3.1.2 用于移动角色的积木
用于移动角色的积木有9个,如图3-3所示。关于其功能的详细描述,见附录B.1节。积木块中的数值可以修改,详见附录B一开始的介绍。

图3-3 移动角色的积木
积木中的x和y分别指一个位置的x坐标和y坐标。
重要
请注意图3-3的第①个积木的特殊之处。它实现的是在角色朝向的方向上移动10(10可以修改)步。所以它的移动效果取决于角色的方向。通过跟旋转积木配合,它可以实现任意方向上的移动。关于角色的方向,见3.2.1节。
这里的移动包括以下两种。
1)在规定的时间内滑行到某个位置
这种积木只有两个:图3-3中的第③个和第⑨个。
2)瞬间移动到某个位置
除了第③个和第⑨个,图3-3中的其余积木都是这种。
对于滑行,可以在舞台上看到其整个运动过程和结果。而对于瞬间移动,因为不需要花时间,所以在舞台上看不到其运动过程和轨迹,而只能看到结果:它直接就出现在了指定的位置,而不管它原来在哪里。
在图3-3的第⑧个和第⑨个积木的弹出菜单中,分别有3个选项,介绍如下。
1)随机位置
首先要解释一下随机数的概念。举两个日常生活中的例子就容易明白了。
(1)掷骰子。它能够在1到6之间产生一个随机数(请家长找一个骰子玩给孩子看)。
(2)摸球。把分别写有1到10的10个乒乓球装入不透明的软布袋子里,收紧袋口,然后反复摇一摇布袋,再蒙眼伸手进去随便抓一个球出来,那么这个球上写的数字就是一个在1到10之间的随机数。抽奖常用这种方法。
Scratch中嵌入了随机数发生器,用于自动产生在指定范围之内的随机数。
随机位置是指坐标为(x1,y1)的位置,其中x1是在-240~240的一个随机数,y1是在-180~180的一个随机数。
2)鼠标指针
即当前鼠标指针所在的位置。
3)角色“xxx”所在的位置
其中“xxx”为角色的名称(图3-3中显示的是“海星”)。每个角色都有一个中心点,角色的位置就是指其中心点的坐标。
3.1.3 动手做一做
例3.1 编写一个程序,表现一条鲨鱼反复地沿反对角线移动。启动方法:单击它。
实现步骤:
(1)单击“文件”→“新作品”选项。
(2)单击按钮,在背景库里找到Underwater 1(水下景色),然后单击它,将之选作当前背景,如图3-4所示。

视频3-2 例3.1鲨鱼游动

图3-4 水下景色
(3)单击按钮,在角色库里找到角色
(Shark),然后单击它,将之添加到作品中。
(4)将角色的大小改为30。
(5)单击总界面左上角的“代码”标签。
(6)在代码区中搭建程序,如图3-5所示。
(7)将作品保存到“海底世界.sb3”文件中。
(8)单击舞台左上方的小绿旗按钮,观看执行效果(注意:要单击鲨鱼)。

图3-5 Shark的代码
例3.2 漂移的三条鱼。在舞台左边放置三条不同造型的鱼,位置分别为偏上、中间、偏下。当按下空格键后,它们沿直线向舞台右边中间的位置滑行,在两秒后同时到达同一位置。

视频3-3 例3.2漂移的三条鱼
实现步骤:
(1)单击“文件”→“从电脑中上传”选项,找到前面保存的“海底世界.sb3”文件,将之打开。
(2)单击按钮,在角色库里找到角色
(Fish),然后单击它,将之添加到作品中。
(3)将Fish角色的大小改为50。
(4)在Fish的代码区中搭建程序,如图3-6所示。

图3-6 Fish的代码
(5)在角色区中把鼠标指针对准角色Fish,单击右键。在弹出的菜单中选择“复制”选项,便得到角色Fish2。
(6)重复(5),得到角色Fish3。这样就有三条这样的鱼了。下面修改Fish2和Fish3的造型。
(7)单击角色Fish2,然后单击总界面左上角的“造型”标签,在左边的列表中选择造型。
(8)单击“代码”标签,发现它已经有了跟Fish一样的代码。把第二个积木中的y改为-100(即它的起始位置靠近左边缘的下部)。
(9)单击角色Fish3,然后单击总界面左上角的“造型”标签,在左边的列表中选择造型。
(10)单击“代码”标签,发现它也已经有了跟Fish一样的代码。把第三个积木中的y改为100(即它的起始位置靠近左边缘的上部)。
(11)将作品保存到“海底世界.sb3”文件中,覆盖原来的内容。
(12)单击舞台左上方的小绿旗按钮,然后再按一下空格键,观看执行效果。
3.1.4 位置监视器
利用图3-7的两个积木,可以在舞台的左上角显示角色当前的x坐标和y坐标。只要在积木左边的勾选框处打勾即可。这种积木被称为位置监视器。

图3-7 位置监视器