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

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

(轻松关注,点击 ↑蓝字。查看历史文章,收获最新资讯) 文章创建:2018-06-15,最后修改:2019-08-11 外观积木让角色的外形变得丰富,借助它们女主角已经能够衣着华丽地站在舞台上,不过,诡异的是她在那里像个木头人一动不动,台下观众看得一脸尴尬。本文就是要让角色“动起来”。 “运动”积木赋予角色移动和转动的能力,看似简单无奇的两个动作经过灵活的组合,能够实现意想不到的效果。 01 坐标 Scratch中通过“坐标”来定义角色、鼠标等任何事物的位置。 坐标系的水平方向是X轴,竖直方向是Y轴。坐标系的单位是“步”,它将在下文03中用到。 以上四个积木就是直接修改或增量修改角色的坐标,来实现角色移动的。注意观察下图,正值表示在坐标轴上正向运动,负值表示在坐标轴上反向运动。 另外,观察红圈标注的位置,它们实时显示了角色的当前坐标。如果你将角色拖动到舞台的四个角,就能得到边界的坐标是(X:-240,Y:180),(X:240,Y:180),(X:-240,Y:-180),(X:240,Y:-180);如果你将角色拖动到中心点,就会得到舞台中心是(X:0,Y:0)。 在介绍舞台时,还会提到关于坐标系的知识。 02 方向 角色有面向某个方位的属性,这在现实生活中也很常见,比如,小明在十字路口给约会的朋友打电话,“我现在面对着招商银行,银行的大门是面向西开的,你来找我吧”。 我们用积木翻译上面的话: 角色(我), [面向  银行 ]  角色(银行), [面向  西  方向]  第1条,面向后面跟的是另外一个角色,在Scratch中如下。需要注意的是,除了角色,选项还可以是“鼠标指针”。 第2条,面向后面跟的是方向,在Scratch的平面舞台上可没有“东西南北”,只能用度数表示方向。在Scratch 2.0中,这个积木还提供默认的“上下左右”四个选项,而在新版中,因为加入了新的模拟“指针”操作方式,所以去掉了四个最常用的选项。不过,对于新方式是否优于老的操作方式,我保留意见。 下图是虽然是旧图,但是很好的说明了数值范围,以及正值和负值的对应关系。 我们尝试下, 例子中可以看出,小猫在原地进行了多次旋转,也就是“面向”方向的改变。 除了上面这些,关于旋转还有两个要点需要知晓: 角色初始面向是“(90)向右”,也可以理解成,角色“造型”区域看到的形象就是默认面向,此时角色的右侧就是角色的朝向,无论程序中角色被旋转了多少角度,这个“右侧”都是角色的“当前”朝向。千万不要把角色的“脸孔”理解成角色的朝向! 角色是绕着自己的中心点旋转的。上篇外观积木提到了中心点,现在仍然不深究,留到后面讲解。 03 旋转 这两个积木可以实现角色的旋转,不管当前角色面向什么方向,都会在当前面向的基础上左转或右转。 其实,上文02的积木虽然是用来设置角色面向(朝向)的,但是通过不断修改  [面向  N  方向]  中的N,也能实现旋转的效果,只是可能用起来比较的繁琐。 下面的例子演示在默认面向时旋转,然后修改面向朝下,再旋转。 04 移动 角色从当前位置、当前面向,移动到特定的位置。 第一个积木:向当前面向移动N步。“步”,就是01中说的坐标系单位。那么,角色从舞台中心是(X:0,Y:0)往右移动的话,最大只能移动240步,因为坐标系边界是(X:240,Y:0)。 第二个积木:立即移动到除自身以外的某个角色、鼠标指针或者任意位置 第三个积木:在第二个积木的基础上增加一个移动耗时,角色就像是一步步走过去的,不再瞬移 第四个积木:立即移动到指定坐标(X:__,Y:__),角色就像突然消失并且出现在另一个地方 :立即移动到指定坐标(X:__,Y:__),角色就像突然消失并且出现在另一个地方 第五个积木:在第四个积木的基础上增加一个移动耗时,角色就像是一步步走过去的,不再瞬移。原理和第三个积木类似 05 碰到边缘 舞台的宽和高都是有限的,于是,需要明确当角色已经运动到边缘时,后续应该怎样运动。 这类积木只有2个,一个是确定“碰到边缘就反弹”,另一个则是设置反弹时的旋转方式。 下面的例子先演示不使用“碰到边缘”积木的情形,小猫碰到边界后仍在试图移动,只是已经无法移动而已;然后增加“碰到边缘就反弹”积木,并且分别尝试三种旋转模式。 实例可以看出,旋转模式“任意”的命名很不贴切,它的实际含义是,当碰到上/下边缘时采取“上-下旋转”。 06 运动参数积木 外观类积木中已经提到这种类型的积木,不赘述。 运动积木中的面向和坐标系是很重要但又不易理解的内容,后续的文章还会多次讲解来增进理解。 tag:#Scratch编程、#少儿编程、#儿童编程、#趣味编程、#青少年编程、#软件编程 例行备注:微信限制已发布文章的修改,欲查看最近更新后的文章可以通过公众号底部的菜单。

--end--

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