
3-1 定点运动
运动模块
我们已经掌握了角色以及背景的添加方法,完成了角色的初始化,能够让角色说、思考或者发出声音,还能够切换角色的造型、切换背景。如果角色能够动起来,那作品一定会更棒!
实现角色运动,需要掌握运动模块中的相关积木。
运动模块位于积木区顶端,可以通过单击积木区的“运动”,切换到相应模块。运动模块控制角色的移动、方向、位置,它是角色行走、位置发生变化的关键。
A→B定点移动
如果希望角色从位置A运动到位置B,可以使用运动类模块中的各种积木来实现。
根据角色当前位置与目标位置的不同,能够使用的积木也有所不同,实现运动的方法有多种,请仔细观察两个位置之间的关系。
- 如果是水平方向发生变化,可以使用“将x坐标增加10”“将x坐标设置为0”等积木。
- 如果是垂直方向发生变化,可以使用“将y坐标增加10”“将y坐标设置为0”等积木。
- 对于“移到x:0,y:0”以及“在1秒内滑行到x:0,y:0”积木,可以应用于任意方向的移动。
- 除了上述方法之外,还可以合理地使用“移动10步”和“面向90度”等积木,实现移动功能。
场景1:A点和B点在水平方向上的数值不同,垂直方向上数值相同,A点坐标为(-100,0),B点坐标为(100,0),见图3.1。

图3.1 位置A到位置B的定点移动——水平方向
场景2:A点和B点在垂直方向上的数值不同,水平方向上数值相同,A点坐标为(0,-80),B点坐标为(0,120),见图3.2。

图3.2 位置A到位置B的定点移动——垂直方向
场景3:A点和B点在水平、垂直方向上的数值均不同,A点坐标为(150,-80),B点坐标为(-120,120),见图3.3。

图3.3 位置A到位置B的定点移动——水平垂直方向
说明:功能实现的方法并不仅仅包含以上几种方法,不同的积木、积木不同的顺序和组合都有可能实现最终效果。
运动方向与面向方向
角色方向存在三种不同的旋转模式,分别是“任意旋转”“左右翻转”和“不旋转”。
在不旋转和左右翻转两种模式中,方向数值不同,但是角色的样子看上去完全相同,那么这些方向数值还有什么意义呢?
- 当角色方向设置为“不旋转”或“左右翻转”模式时,方向数值仅表示角色运动的方向,角色图形方向不会和数值保持完全一致。
- 当角色方向设置为“任意旋转”模式时,角色图形方向和运动方向会同时发生旋转和改变。
图3.4中,图形的旋转模式被设置为了左右翻转,在方向为0时,运动方向向上,而角色图形(小恐龙的面部)朝向右侧。此时,使用“移动10步”积木,让角色朝着面向的方向运动100步(从运动类模块当中拖曳出“移动10步”,修改移动步数的数值),会发现该角色向上运动了一段距离,而不是向着角色头部面向的方向运动。

图3.4 角色运动方向与面向方向
A→B→A定点移动
如果希望实现角色“从位置A移动到位置B,再移动到位置A”(见图3.5),且这个运动过程是可以用肉眼分辨出来的。那么,这个功能可以使用哪些积木实现呢?
最为简便的方法,是借助两个“在1秒内滑行到x:0 y:0”的积木来实现(具体秒数和x、y的坐标可修改),见图3.6。

图3.5 位置A到位置B,再回到位置A的移动

图3.6 位置A到位置B,再回到位置A的移动——在1秒内滑行到积木
除此之外,也可以使用多个“移动10步”“将x坐标增加10”“将y坐标增加10”等积木来实现这个功能。
尝试图3.7中的方法之后,你会发现,将多个“移动10步”的积木块直接连接到一起,会让角色快速地直接运动到最终位置,并没有办法用肉眼查看到运动过程,如何解决这个问题呢?请继续往后学习。

图3.7 位置A到位置B,再回到位置A的移动——移动10步积木
编程提示
1 角色的初始面向方向
通常情况下,如果一个角色拥有方向的特点,在原始素材中会让角色的面部朝向右侧(见图3.8)。

图3.8 初始面向方向——三种不同特点的角色
如果最初角色面向的方向不是右侧,而是左侧,会导致视觉效果出现很大的问题(见图3.9)。

图3.9 角色初始面向方向不是90度时的问题
对于自己上传的一些角色素材,如果角色素材“朝向方向”有误,可以在造型面板中调整角色面向的方向(见图3.10)。

图3.10 在造型面板翻转造型方向
2 多个“移动10步”的积木块叠加,执行时无法看到移动过程
积木的执行速度非常快,在1秒当中能够执行非常多数量的积木块,快到我们的肉眼没有办法分辨出来。所以,如果希望能够看到移动的过程,就需要借助“等待1秒”积木来实现。
需要注意的是,并非只有“移动10步”的积木块执行速度快,所有Scratch的积木块执行速度都非常快。
3 制作作品要考虑更多的实现方法
在程序的世界里,每一种功能都可以通过多种方法实现,每一种实现方法都拥有其优劣势。在解决一个问题(功能)时,会存在“较佳”或“最佳”的解决方案,但是任何一个方案都不是完美的。
思考一个功能的多种实现方法,不但能够开阔思维,还能够让解决方案变得更好,何乐不为呢?
在我们的生活中,也是如此,想要解决某个问题并不是只有一种方法,如果发现当前使用的方法暂时无法解决问题,可以尝试寻找另一种方法。
如果你已经拥有了一种能够解决问题的方法(如复习知识的方法),也请基于当前的方法多思考,想想有没有更好的方法,能不能优化当前的方法。这样的思考过程和行为,会让你越来越聪明,也能够更接近这个问题的“最佳解决方案”。
动动手——生机勃勃
1 作品效果图
作品效果如图3.11所示。

图3.11 作品效果图——生机勃勃
2 作品功能
动物们悠闲地在生机勃勃的大草原上散步。
- 舞台背景为草原背景。
- 舞台上有各种各样的动物。
- 点击绿旗后,各个动物进行移动。
- 狮子从舞台左侧,移动到舞台右侧。
- 棕熊从舞台左下方,移动到舞台的左侧中部。
- 长颈鹿从舞台右侧中部,移动到舞台左下方。
- 狐狸在舞台右下方来回移动两次。
3 作品步骤提示
- 本作品中的所有素材,均为Scratch软件的默认素材。
- 为作品添加合适的背景。
- 为作品添加多个角色,使用相关积木完成角色的初始化。
- 使用移动相关积木,配合“等待1秒”积木完成每个角色的移动功能。