卡卡在工作人员的引导下穿上游戏特制的装备。

“游戏中,您注意一下画外音,AI助手会给您提供一些提示信息“。
“好的,谢谢啦!”

卡卡进入虚拟世界,眼前飘过一连串游戏名称。《第六人格》、《王者归来》,《出征三体世界》……卡卡有点眼花缭乱。这时,一个标题进入了他的视野——《拯救!屏奴的逆袭》。

“屏奴?”卡卡有点好奇地问了一句。
AI助手的声音传来——“屏奴,就是每天面对各类屏幕(手机、电脑、Pad)无法自拔,已经影响健康的人……”
“就玩这个”卡卡说。

话音刚落,场景切换到了一个大草原,湛蓝的天空飘着朵朵白云。

AI助手提醒卡卡,这是游戏的热身环节,要先走完2000步才能开始游戏。

“2000步?小意思”,卡卡开始小跑起来。不一会就满头大汗……

学习目标

  1. 进一步熟悉 Scratch 编程环境;
  2. 学习让角色在舞台上移动并产生“动画”效果;
  3. 掌握重复执行、逻辑判断类控制指令;
  4. 初步了解变量的概念。

编程实战

本节我们使用Scratch编程控制小猫在舞台上来回走动,走到2000步时自动停止。

第一步:舞台设置

新建一个 Scratch 作品,利用上一节课所学的知识,设置舞台背景为“Blue Sky”(蓝色天空),将默认小猫角色的大小修改为60,并放到背景中的地面上。

第二步:编写跑步代码

试着从指令区拖动一个“移动10步”指令到代码区,点击这条指令执行,你会发现小猫果然向前移动了一点点。那么要移动更多的步数怎么办呢?把步数直接修改成2000?运行一下,发现小猫瞬间就移动到舞台边缘不动了。原来,Scratch 规定角色是不能走出舞台范围之外的,那我们就需要解决两个问题:

  1. 不能让小猫一下走完2000步,电脑的运算太快了,这样你根本看不到走路的过程;
  2. 当小猫走到舞台边缘的时候,要能掉头向回走。

你可以写出这样的指令:

这三条指令都是运动类的指令,它将小猫的翻转方式设置为左右翻转(如果没有这条指令,小猫碰到边缘反弹回来的时候就变成头向下了,你可以试验一下),再移动10步,如果碰到舞台边缘,小猫会回过头来。这样,你只要不断点击这段代码,重复每次走10步的过程,就可以让小猫不断地走路。

有没有什么办法让小猫自己不断地重复执行这段代码呢?有的,找到“控制”类指令中的“重复执行”指令。这是一个奇怪的指令,有点像一边开口的抽屉,里面可以装东西。当你把它拖动到代码区域时,可以试着用它去“套”住你想重复执行的指令,这些执行就会一直反复执行下去!

你会看到图中我把设置旋转方式的指令放在了重复执行之前,这是因为设置旋转方式只需要设置一下就能一直生效,不需要反复修改。现在点击这段代码,你会发现小猫已经学会了在舞台上来回移动——注意,是“移动”不是“走路”,因为小猫的腿似乎并没有动!能不能实现像现实中的人走路一样让小猫迈开腿呢?这就需要用到制作动画的原理了。

电影上的人物是怎么动起来的呢?是因为摄像机为运动中的角色拍摄了大量的照片,一般是每秒钟至少24张,当把这些照片连续展示在你眼前时,由于你的眼睛存在“视觉暂留”现象,你会觉得这些角色真的动起来了。

我们要实现小猫走路,也得用到这个原理。不过我们不能为小猫每秒钟拍摄很多照片,只能让小猫轮流显示两条腿在不同位置的照片,重复执行的时候,你就会觉得小猫的腿在动。这就要使用 Scratch 提供的“造型”功能。Scratch 角色库中的大部分角色都带有不同的造型,当你在角色库查找角色时可能会注意到,把鼠标放到角色上,角色就会动起来,这就是通过不断切换角色的不同造型来实现的。

我们的小猫角色有没有别的造型呢?注意一下项目编辑区上方有三个标签页,分别是“代码”、“造型”和“声音”,点击切换到“造型”标签,可以看到下面的界面:

左侧的列表区域显示出小猫有两个造型,你可以点击这些造型切换一下,看看造型之间有什么不同。Scratch 提供了丰富的造型创作功能,你可以通过下方的小猫头按钮,选择新的造型到当前角色,也可以自己绘制一个新的造型——右侧显示的绘图编辑器就是用来做这个的,它的功能很强大,等用到的时候我们再说——甚至你可以使用电脑自带的摄像头拍摄一个图片作为新造型!不过今天我们暂时不用修改小猫的造型,返回代码标签页,把代码修改为下面这样:

其实,只是增加了一条“外观”类型的指令(紫色)到重复执行的代码中,为了方便运行程序我在最前面添加了一个绿旗启动按钮。这时点击绿旗,你发现小猫真的跑起来了!(小猫跑动的时候,你有没有注意到在角色列表区域上方,小猫的X属性在不断发生变化?这是我们下一次要学习的内容,这里先提醒关注一下)。

第三步:为小猫实现计步

根据故事情节,小猫要跑2000步。怎么在天空中显示出小猫已经跑了多少步?这要用到变量。

什么是变量?变量是计算机编程中不可或缺的概念,你可以理解为变量就是一个存取数据的盒子,给这个盒子取一个名字(代号)之后,你就可以利用这个名字去获取盒子的内容,或者修改盒子的内容。举个例子,你买了一个存钱罐把自己的零钱存起来,就可以把你的“零钱余额”视为一个“变量”,当你向盒子里投币时,变量的值就增加了;从盒子里取钱用的时候,变量的值就减少了,任何时候你查看“零钱余额”的数值时,都会获得最新的余额数字。当然,Scratch 中的“变量”不仅可以保存数字,还能保存字符等数据,我们用到的时候再说。

就眼下的场景而言,你一定会想到,我们可以设置一个变量去保存小猫的步数,然后让它在跑步的时候,每重复执行一次移动指令,就在变量上加10步不就可以了吗?正是如此。可是怎么才能设置一个变量呢?

在项目编辑区,你可以点击切换到“变量”类(桔红色)指令,最上面就是一个按钮——“建立一个变量”。点击它,会出现新建变量的界面,你可以给变量取名为“小猫步数”,确定即可,先不用管它适用于所有角色还是当前角色。

变量建立完成后,注意一下舞台左上角,出现了一个灰色的条状区域,里面显示了变量的名称和变量当前保存的数值。现在对代码做如下修改:

桔红色的两条指令是新加的,第一条是在绿旗开始时把“小猫步数”设置为“0”,这样会重新开始计数;第二条是在重复执行的代码内部,小猫移动10步后,把小猫步数这个变量也增加10。需要注意的是,初学者最容易犯的错误就是变量混用,因为一个程序中可能有多个变量,保存不同的值,而对变量的操作都是通过一个下拉菜单选择你要操作的变量的,点击指令中变量名称旁边向下的小三角符号就可以看到这个菜单 :

所以在拖动变量相关的指令时,务必检查一下你操作的是不是正确的变量。

点击绿旗运行,小猫跑步的时候,舞台左上角的步数显示果然随着增加了。再次点击绿旗,又重新开始从0计算。

第四步:跑完休息

小猫热身的要求是跑2000步,怎样让它在跑到2000步之后就停下呢?这要用到逻辑判断。

什么是逻辑判断?简单来说就是“是”和“非”、“真”和“假”相关的问题。比如:如果外面下雨了,我出门就带上伞。这里的“下雨”就是一个逻辑判断,它决定了后面是否带伞这个动作。在讲到流程图时,我们讲到了“条件执行”,就是指这种情况。“是否下雨”就是条件,当条件成立,我们做拿雨伞的动作;如果不成立也就是没有下雨,当然就不用带伞了。

具体到本例来说,就是我们要判断一个条件,小猫是否已经跑了2000步以上?换句话说,“小猫步数”这个变量的值是不是已经大于2000了?如果大于2000,我们就让它停下来。怎么做呢?

在“控制”类指令中找到“如果…那么”,就是这个——

如果后面有一个深色的六边形区域,这里就是放我们要判断的条件。如果条件成立,就执行这条指令所“包含”的代码,否则不执行。那么条件从哪里来?

切换到“运算”类(绿色)指令,找到下面这组指令:

发现了吗?这六个指令正好是六边形的,它们就是与“如果…那么”配合使用实现逻辑判断的指令,这里生成的指令可以嵌套到“如果…那么”的条件区域中去。而第一种判断“XX(空白,这里是放变量的,可以把变量拖过来)大于50”正是我们需要的判断,把它和“小猫步数”变量以及“如果…那么”指令组合起来,变成这样:

注意一下,绿色的条件中“小猫变量”是从指令区拖动过来的。初学者可能会犯的错误是直接在这个圆形中输入变量名字,那是无法从变量中取值的,而是拿变量的“名字”或代号与后面的数字比较,也就是用“小猫步数”这四个汉字去和2000比较大小,这是没有意义的,一定要注意避免!

现在条件已经组合完成,只要条件成立的时候,停止程序就可以。从控制类指令中拖动一个“停止全部脚本”到“如果…那么”指令当中,当小猫步数大于2000的时候,程序就会被停止。(这条指令还有其它选项,我们用到时再说)。

最后,我们再把这段组合好的代码拖动到小猫跑步的重复执行程序中,让程序在小猫每次跑完10步的时候就去判断一下是不是已经大于2000,大于2000就停止程序:

点击绿旗,观察小猫跑步的执行情况,到2000步的时候,它停止了吗?

第五步:保存程序

最后,使用“文件菜单”下的“保存到电脑”,将作品保存为“热身中的卡卡.sb3”,本节的任务就完成了。

指令小贴示

  • 移动【数值】步:让角色朝着目前的方向前进设定的步数;
  • 碰到边缘就反弹:角色移动到边缘会改变方向,改变方式与角色的旋转方式有关,如果要让角色掉头往回走,就需要用“将旋转方式设为左右翻转”指令,或在角色属性中设置这个旋转方式;
  • 将【变量名称】设为【值】:直接给你建立的变量指定一个值,一般用于程序启动时为变量建立初始值;
  • 将【变量名称】增加【值】:在变量现有数值的基础上加上指定的数字。比如变量原值为10,增加10后,变量值为20;
  • 停止【全部脚本】:这个指令有三个选项,分别是停止全部脚本(把所有角色的所有代码都停止执行)、停止当前脚本(只影响这个指令所在的代码)、停止该角色的其它脚本(除了本段指令,当前角色的其它代码都不再执行),具体可以在后续课程中逐步体会它们的不同之处;
  • 下一个造型:将角色在舞台上的样子切换成它的造型列表中下一个造型,如果已经是最后一个,再跳到第一个,这样切换造型会产生动画效果;
  • 重复执行:这是一个控制类指令,被它包含的指令会一直启动下去,除非有其它指令停止它的运行;
  • 如果【判断条件】那么…:控制类代码执行的指令,如果后面的运行条件成立,就执行包含的代码。这个指令会和绿色的逻辑运算指令结合起来使用,让程序根据条件的不同来执行不同的代码。

课后思考

本节我们第一次接触到变量,并学习了重复执行和条件执行,这些都是下一步学习的重要基础,务必认真领会。

一般来说,程序的结构类型可以分为顺序结构、分支(条件执行)和循环(也就是重复执行)。本节我们把这三种类型的结构都用到了。

要理清复杂程序的结构,最好的方法是流程图,你能运用之前所学的知识,为本节学习的程序画一幅流程图吗?

好课堂用Scratch编程06 趣学篇(二)热身中的卡卡相关推荐

  1. 好课堂Scratch编程11 趣学篇(七) 一场真正的终极对决

    "小明的BMI指数是28.73,属于肥胖范围"卡卡自信地说. Griffin也不废话,将钥匙交给卡卡就消失了,卡卡走进了古堡. 空荡荡的大厅里放着一扇闪闪发光的传送门.卡卡把钥匙插 ...

  2. 好课堂Scratch编程10 趣学篇(六)听题!格里芬的挑战

    卡卡逐渐摸出了规律--只要保持专注,还是能挣脱这些"注意力陷阱"的.他回忆起自己平时的情形--本来是打算用手机搜一道作业题,不知道怎么的就点开了一段视频,然后又下载了一个小游戏-- ...

  3. 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一

    点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一  今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...

  4. Linux系统编程1:基础篇之Linux中使用率最高的一些命令

    文章目录 Linux基本指令 (1)pwd(显示所在目录) (2)ls(列出文件或目录) (3)cd(改变目录) (4)touch(创建文件) (5)mkdir(创建目录) (6)rmdir和rm(删 ...

  5. 【搞定Java并发编程】第24篇:Java中的并发工具类之CountDownLatch

    上一篇:Java中的阻塞队列 BlockingQueue 详解 本文目录: 1.CountDownLatch的基本概述 2.CountDownLatch的使用案例 3.CountDownLatch的源 ...

  6. 教孩子学编程 python 下载_趣学python pdf 中文下载

    趣学python教孩子学编程pdf是一本专为想要学习python不错的朋友准备的入门教程,可以轻松的帮之你由浅入深,由难到易的学习python编程,感兴趣欢迎下载学习! 趣学python教孩子学编程p ...

  7. 《趣学算法》C++源码/java源码下载和QQ交流群

    <趣学算法>书中为C++语言实现,图解多,通俗易懂,小学生,中学生,大学生,已参加工作人员均可轻松阅读. <趣学算法>内容摘要及特色:点击打开链接 <趣学算法>目录 ...

  8. python3入门到精通 pdf_解析《Python3标准库》PDF中英文代码+《算法之美指导工作与生活的算法》PDF中英文+《Scratch编程从入门到精通PDF》趣学...

    我想Python之所以流行,原因在于:1. 语言本身优美,表达力强.适合做快速原型开发.且学习曲线平坦,上手快. 2. Python标准库正是应对了这第二点.丰富的库实现得以让python程序员迅速完 ...

  9. ▷Scratch课堂丨【编程趣味卡3】制作音乐

    授权转载 | Geekid 原文作者 | Mr.炎 原文标题 | 少儿编程 教程丨Scratch编程趣味卡 - 3.制作音乐 标签:难度初级:适合年龄段:8+: Scratch介绍 Scratch融合 ...

最新文章

  1. openresty luarocks 安装以及openssl 问题处理
  2. 基于Jquery+Ajax+Json+高效分页
  3. SAP GraphQL console UI的实现原理
  4. create报错不是函数_创建空文档失败,OnCreate函数报错了吗
  5. Linq Group By 注意点
  6. 2017 济南综合班 Day 2
  7. Maven学习总结(19)——深入理解Maven相关配置
  8. HDU2673 shǎ崽 OrOrOrOrz【排序】
  9. 新春活动策划案例(共31份)
  10. 【经验】SQL Server 2008 R2 安装教程
  11. 体验一下阿里云文字识别OCR
  12. kettle数据同步从FTP服务器上下载文件
  13. android桌面隐藏功能,如何开启 安卓10 隐藏的桌面模式并或者显示器拓展支持
  14. 听说程序员普遍缺乏数据结构,惊得我熬了一宿滋味浓郁的数据结构,滋一口回味悠长(建议珍藏)
  15. wex5 导入mysql_Wex5铛铛开发环境搭建步骤
  16. ClouderaManager介绍、CDH特点、ClouderaManager架构、ClouderaManager功能、Cloudera Management Service
  17. http://blog.csdn.net/hguisu/article/details/8836819
  18. 数据挖掘之关联分析Apriori算法
  19. java 管理 程序设计_用java编程设置管理的用户登录
  20. 如何判断一个结构体的大小

热门文章

  1. 武汉财贸学校2020计算机应用,武汉财贸学校招生条件
  2. 从个人免签、四方通道到刷脸支付
  3. comtrade 录波在线分析工具
  4. 安居客二手房源信息查询
  5. 小程序车牌号模拟虚拟键盘选择。车牌号虚拟键盘。作为组件使用
  6. Stratifyd: 大数据之下的燕麦市场竞争现状
  7. STM32CubMX_MQ135检测空气质量
  8. nginx介绍及使用
  9. 如何实现条码中间的几位流水号自动列印
  10. 3-感知机的局限性与多层感知机