Scratch运动积木详解(更新到Scratch 3.0新版)

网友投稿 2019-08-11 13:27

(轻松关注,点击 ↑蓝字。查看历史文章,收获最新资讯)

文章创建:2018-06-15,最后修改:2019-08-11

https://cdn.china-scratch.com/timg/190813/132HJP4-0.jpg

外观积木让角色的外形变得丰富,借助它们女主角已经能够衣着华丽地站在舞台上,不过,诡异的是她在那里像个木头人一动不动,台下观众看得一脸尴尬。本文就是要让角色“动起来”。

“运动”积木赋予角色移动和转动的能力,看似简单无奇的两个动作经过灵活的组合,能够实现意想不到的效果。

https://cdn.china-scratch.com/timg/190813/132HM221-1.jpg

01 坐标

https://cdn.china-scratch.com/timg/190813/132HQ304-2.jpg

Scratch中通过“坐标”来定义角色、鼠标等任何事物的位置。

坐标系的水平方向是X轴,竖直方向是Y轴。坐标系的单位是“步”,它将在下文03中用到。

以上四个积木就是直接修改或增量修改角色的坐标,来实现角色移动的。注意观察下图,正值表示在坐标轴上正向运动,负值表示在坐标轴上反向运动。

https://cdn.china-scratch.com/timg/190813/132HQT8-3.jpg

另外,观察红圈标注的位置,它们实时显示了角色的当前坐标。如果你将角色拖动到舞台的四个角,就能得到边界的坐标是(X:-240,Y:180),(X:240,Y:180),(X:-240,Y:-180),(X:240,Y:-180);如果你将角色拖动到中心点,就会得到舞台中心是(X:0,Y:0)。

在介绍舞台时,还会提到关于坐标系的知识。

02 方向

https://cdn.china-scratch.com/timg/190813/132H95I6-4.jpg

角色有面向某个方位的属性,这在现实生活中也很常见,比如,小明在十字路口给约会的朋友打电话,“我现在面对着招商银行,银行的大门是面向西开的,你来找我吧”。

我们用积木翻译上面的话:

  1. 角色(我), [面向  银行 ] 

  2. 角色(银行), [面向  西  方向] 


第1条,面向后面跟的是另外一个角色,在Scratch中如下。需要注意的是,除了角色,选项还可以是“鼠标指针”。

https://cdn.china-scratch.com/timg/190813/132H933V-5.jpg

第2条,面向后面跟的是方向,在Scratch的平面舞台上可没有“东西南北”,只能用度数表示方向。在Scratch 2.0中,这个积木还提供默认的“上下左右”四个选项,而在新版中,因为加入了新的模拟“指针”操作方式,所以去掉了四个最常用的选项。不过,对于新方式是否优于老的操作方式,我保留意见。

https://cdn.china-scratch.com/timg/190813/132H91D6-6.jpg

下图是虽然是旧图,但是很好的说明了数值范围,以及正值和负值的对应关系。

https://cdn.china-scratch.com/timg/190813/132H93J9-7.jpg


我们尝试下,

https://cdn.china-scratch.com/timg/190813/132H92121-8.jpg

例子中可以看出,小猫在原地进行了多次旋转,也就是“面向”方向的改变。

除了上面这些,关于旋转还有两个要点需要知晓:

  • 角色初始面向是“(90)向右”,也可以理解成,角色“造型”区域看到的形象就是默认面向,此时角色的右侧就是角色的朝向,无论程序中角色被旋转了多少角度,这个“右侧”都是角色的“当前”朝向。千万不要把角色的“脸孔”理解成角色的朝向!

  • 角色是绕着自己的中心点旋转的。上篇外观积木提到了中心点,现在仍然不深究,留到后面讲解。

03 旋转

https://cdn.china-scratch.com/timg/190813/132I01K9-9.jpg

这两个积木可以实现角色的旋转,不管当前角色面向什么方向,都会在当前面向的基础上左转或右转。

其实,上文02的积木虽然是用来设置角色面向(朝向)的,但是通过不断修改  [面向  N  方向]  中的N,也能实现旋转的效果,只是可能用起来比较的繁琐。


下面的例子演示在默认面向时旋转,然后修改面向朝下,再旋转。

https://cdn.china-scratch.com/timg/190813/132I023B-10.jpg

04 移动

https://cdn.china-scratch.com/timg/190813/132I04093-11.jpg

角色从当前位置、当前面向,移动到特定的位置。

  • 第一个积木:向当前面向移动N步。“步”,就是01中说的坐标系单位。那么,角色从舞台中心是(X:0,Y:0)往右移动的话,最大只能移动240步,因为坐标系边界是(X:240,Y:0)。

  • 第二个积木:立即移动到除自身以外的某个角色、鼠标指针或者任意位置

  • 第三个积木:在第二个积木的基础上增加一个移动耗时,角色就像是一步步走过去的,不再瞬移

  • 第四个积木:立即移动到指定坐标(X:__,Y:__),角色就像突然消失并且出现在另一个地方

  • :立即移动到指定坐标(X:__,Y:__),角色就像突然消失并且出现在另一个地方

  • 第五个积木:在第四个积木的基础上增加一个移动耗时,角色就像是一步步走过去的,不再瞬移。原理和第三个积木类似

https://cdn.china-scratch.com/timg/190813/132I15A7-12.jpg

05 碰到边缘

https://cdn.china-scratch.com/timg/190813/132I12194-13.jpg

舞台的宽和高都是有限的,于是,需要明确当角色已经运动到边缘时,后续应该怎样运动。

这类积木只有2个,一个是确定“碰到边缘就反弹”,另一个则是设置反弹时的旋转方式。

下面的例子先演示不使用“碰到边缘”积木的情形,小猫碰到边界后仍在试图移动,只是已经无法移动而已;然后增加“碰到边缘就反弹”积木,并且分别尝试三种旋转模式。

https://cdn.china-scratch.com/timg/190813/132I11Z1-14.gif

实例可以看出,旋转模式“任意”的命名很不贴切,它的实际含义是,当碰到上/下边缘时采取“上-下旋转”。

06 运动参数积木

https://cdn.china-scratch.com/timg/190813/132I22S4-15.jpg

外观类积木中已经提到这种类型的积木,不赘述。

运动积木中的面向和坐标系是很重要但又不易理解的内容,后续的文章还会多次讲解来增进理解。

tag:#Scratch编程、#少儿编程、#儿童编程、#趣味编程、#青少年编程、#软件编程

例行备注:微信限制已发布文章的修改,欲查看最近更新后的文章可以通过公众号底部的菜单。

--end--

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