“小明的BMI指数是28.73,属于肥胖范围”卡卡自信地说。

Griffin也不废话,将钥匙交给卡卡就消失了,卡卡走进了古堡。

空荡荡的大厅里放着一扇闪闪发光的传送门。卡卡把钥匙插入门锁,门自动打开了。

一阵强光闪过,照得卡卡睁不开眼睛。等他适应了周围的光线时,发现自己进入了一个空旷的房间里。靠近墙的阴影中站着一个人,背对着卡卡。

“你好?”卡卡试探地打招呼。

这个人没有吭声,许久才转过身来——看到对方的面孔,卡卡吃惊地张大了嘴,半天都合不上——这怎么可能呢?

“是的,我就是你,卡卡。”

“要通过这最后的关卡,你必须打败我。”

学习目标

  1. 使用消息协调多个角色的动作;
  2. 在程序中使用声音的方法;
  3. 使用计时器相关指令实现计时。

编程实战

本节我们要实现的是一个过关游戏。BOSS会向小猫发射火球,并召唤从天而降的怪兽攻击小猫,而小猫不具备攻击能力,只能通过跳跃和移动躲避攻击。如果小猫在BOSS的攻击下能够坚持30秒,就可通关。

这是迄今为止最复杂的一个程序,有了前几节内容的基础,相信你完全可以一步一步地把它实现出来。我们先分析一下游戏中角色相关的逻辑。

  • 小猫卡卡:程序开始后受键盘控制,左右键移动,空格键跳起,跳起后受到地球引力影响会慢慢落下。如果不小心碰到了BOSS发射的火球和怪物,会说“不好,被击中了”,游戏失败;如果到了30秒还没有被击中,会收到计时器发送的消息,说“我胜利啦”,结束程序;
  • 怪物:程序开始后每2秒克隆一个自己,克隆体从舞台上边缘的随机位置落下来,碰到地面后消失;
  • 火球:程序开始后,从BOSS身边每2秒向小猫卡卡发射一次,直到碰到舞台边缘消失;
  • 小猫BOSS:不执行任何代码
  • 背景:程序启动后开始计时,到30秒时发送游戏胜利的广播消息。

下面,让我们开始吧!

第一步:添加背景和角色

新建 Scratch 项目,将背景选择为内置的 “Castle 3”,添加内置的“Ladybug2”(虫子,用来充当怪物)和“Sun”(太阳,用作火球角色)到角色列表,然后用鼠标右键点击角色列表中的小猫,执行“复制”命令复制另一个小猫角色,并对角色做如下设置:

  • 角色1(小猫卡卡):大小设置为70,方向90,放在舞台左下角;
  • 角色2(小猫BOSS):大小70,方向-90,旋转方式为左右翻转,放在舞台右下角,与小猫面对面;
  • Ladybug2:大小设置为50,位置随意,设置为隐藏状态;
  • Sun:大小设置为30,放在角色2前面,设置为隐藏状态;

角色位置可参考下图:

第二步:编写Sun角色(火球)代码

Sun角色的代码我们都很熟悉,就是不断克隆自己,飞向角色1小猫,碰到边缘后删除克隆体。这里只有一条指令没有使用过,就是播放声音,这条声音类指令(紫罗兰色)非常简单,就是播放你选择的声音。你可以切换到项目编辑区的“声音”标签查看当前程序中包括的声音,对现有的声音进行编辑,或者导入电脑上的声音文件(比如Mp3文件)。如果你的电脑有麦克风设备(一般笔记本电脑都内置麦克风,台式机需要另外配置外接设备),也可以通过录音方式新建一个声音。对于本例来说,就是播放Scratch内置的“Pop”音效,这是一种类似于气泡破裂的声音——“笃”。

第三步: 编写Ladybug2角色代码

Ladybug2角色的代码与Sun角色是相似的,都是在程序启动时克隆自己。克隆体会先把自己移动到舞台上边缘的任意位置(X坐标是-240至240的一个随机数,Y坐标固定为158),然后重复执行Y坐标减少的代码直到碰到舞台下边缘(当然如果碰到了角色,游戏就结束了)。

第四步:编写角色1小猫代码

与其它角色相比,小猫的代码稍微复杂一点,但也很容易理解。左边第一段代码就是响应键盘操作的,在程序开始后先把自己显示出来(因为如果游戏失败这个角色会隐藏,所以再次游戏时应该先显示),然后就重复检测键盘输入,左右方向键的处理代码是增加或减少X坐标,而空格键则先判断如果Y坐标小于-10,就将Y坐标增加80,增加80就让小猫有了跳起的效果,而先判断Y坐标是不是小于-10,是为了避免你连续按空格键,小猫就跳到舞台上边缘去了。

在前面的分析中,我们要求小猫跳起后要能做“自由落体”运动,也就是慢慢落向地面。这个怎么实现呢?我们右边这段代码在程序启动后会一直检测小猫的位置(Y坐标),如果Y坐标大于-125,说明小猫不在地面上,这个时候我们就让它的Y坐标增加-2(即减少2),重复执行下来,它就慢慢落向地面了。下面这段检测代码则是检测小猫是否碰到了BOSS发出的火球或Ladybug2角色,如果碰到了其中一个(它们之间是“或”的关系),就会停止小猫的动作,说出“不好,被击中了……”后隐藏,并终止全部脚本。

第五步:编写计时器代码

角色的指令编写完,我们还要实现一个计时器,当程序启动后就会开始计时,到30秒时,给各个角色发一条消息。Scratch自带的计时器指令比较少,在侦测类指令中有一条“计时器归零”指令和一个内置的“计时器”变量。从你打开Scratch开始,这个计时器变量就在不断增加,你可以试着勾选这个“计时器”变量前面的对勾,它会在舞台上显示出秒数并不断增加。如果你这时把“计时器归零”拖到代码区执行一下,会发现它又从0开始重新计时了。

那么怎么在舞台上显示程序开始后的秒数呢?直接用系统内置的计时器变量行不行呢?不行,因为第一这个计时器显示的是带小数点的秒数,不太美观;第二是游戏结束的时候我们需要停止计时器,可是Scratch 并没有提供“停止计时器”的指令,只能重新开始计时!这怎么办呢?我们可以换个思路,自己新建一个“秒数”变量,在程序启动时,把它置为0,同时让计时器开始计时,我们用重复执行的代码,不断设置这个变量等于系统计时器的整数部分(也就是小数点前的数字)。一旦检测到这个“秒数”大于30,我们就不再让这个变量与系统内置的计时器同步,而是给其它角色发消息终止游戏了。

按照这个逻辑,我们可以写代码了。由于这段代码是公共的,不属于任何角色,我们最好把它写在“背景”对象的代码区域,只要先在角色列表区域选中背景,编写的代码就是背景的代码。注意在编写代码之前,先在指令区新建一个变量并命名为“秒数”:

这段代码的逻辑很简单,前面已经分析过,这里就不再赘述。

第六步:为各角色编写接收消息指令

我们通过上一步的代码广播了一条自建的“胜利”指令,其它角色收到这条消息后,需要终止自己的指令执行:

将上面的代码添加到小猫、Sun和Ladybug2三个角色中,其中小猫还要多加一条说话指令“我胜利了!”——程序就完成了。

指令小贴示

  • 播放声音【名称】:播放指定的声音,声音可以是内置的,也可以上传或录制。注意,本指令播放声音不会等声音播放完才继续执行下面的指令,而是启动声音播放后马上就继续执行后面的代码。如果你想实现的是播放完成后再执行,可以用另一条指令“播放声音【名称】等待播完”;
  • 计时器归零:将 Scratch 内置的计时器变量归0。

课后思考

本节综合应用前面所学知识创作了一个完整的小游戏,角色较多,所以要理清头绪,弄清楚谁是“主角”,谁是“配角”,围绕主角要完成的工作,逐一梳理配角的行为,就会减少代码混乱的可能性。

本节作品中没有给小猫角色添加攻击BOSS的代码,也没有让BOSS移动位置,如果有兴趣的话,可以在本节内容的基础上,对各角色的代码进一步完善。

好课堂Scratch编程11 趣学篇(七) 一场真正的终极对决相关推荐

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

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

  2. 好课堂用Scratch编程06 趣学篇(二)热身中的卡卡

    卡卡在工作人员的引导下穿上游戏特制的装备. "游戏中,您注意一下画外音,AI助手会给您提供一些提示信息". "好的,谢谢啦!" 卡卡进入虚拟世界,眼前飘过一连串 ...

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

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

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

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

  5. 儿童编程微课堂-Scratch准备篇:一、Scratch简介

    作者:程序媛妈妈 Scratch简介: Scratch 是由麻省理工学院(MIT)媒体实验室设计开发的一款面向中小学生的可视化简易编程语言. 适合7~16岁学龄儿童学习,至今已有十年之久. Scrat ...

  6. 【趣学算法】Day2-数据结构入门篇

    14天阅读挑战赛 努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法! 上一篇我们提到为什么要学算法? [趣学算法]Day1-为什么要学算法?_跟着飞哥学编程的博客-CSD ...

  7. 少儿编程之旅 趣学Python,小学生python趣味编程PPT

    中小学生如何学习Python编程? 一.中小学生接触电脑的时间很少,所以要经常操作电脑,熟悉电脑的操作,查资料,环境变量,命令行等等.二.编程需要一些英语基础,不用很厉害,但是至少要能看懂一些简单的互 ...

  8. 学python编程-趣学python编程中文版 PDF 下载

    相关截图: 资料简介: Python是一款解释型.面向对象.动态数据类型的高级程序设计语言.Python语法简捷而清晰,具有丰富和强大的类库,因而在各种行业中得到广泛的应用.对于初学者来讲,Pytho ...

  9. python tkinter火柴人_趣学Python编程

    <趣学Python编程> 第1部分 学习编程 第1章 Python不是大蟒蛇 3 1.1 关于计算机语言 3 1.2 安装Python 4 1.2.1 在Windows 7上安装Pytho ...

最新文章

  1. 《学习OpenCV》第三章习题 第3题
  2. SharpSvn使用说明
  3. Python 网络爬虫笔记2 -- Requests库实战
  4. android UncaughtExceptionHandler全局异常处理
  5. 设置Webdriver启动chrome为默认用户的配置信息
  6. Windows字体拯救计划(雅黑+monaco+mactype)
  7. 新颖的计算机科学与技术毕业设计题目
  8. 打包出来的 common.js/umd.js 是啥?
  9. asp.net 随机选举数据库服务器节点,最简单的压力分发
  10. TP5.1使用 GatewayWorker 进行 socket 通讯
  11. 创建MySQL数据库·数据库笔记(三)
  12. C语言——三目运算符的进阶用法,比较三个或者四个数的大小
  13. flash播放器JW Player使用方法
  14. i219v微星 驱动_微星MPGZ390PROCARBON驱动程序官方版
  15. Android 11获取应用列表 android.permission.QUERY_ALL_PACKAGES
  16. IjData.LsPCAD.v6.32 1CD(声学设计软件系统)
  17. WordPress添加plugin
  18. 如何增加微信公众号的粉丝黏度?
  19. 前端如何在项目中做出亮点?
  20. 汇川一拖二伺服_汇川技术IS620N伺服(EtherCAT高速总线通信伺服)数码管显示

热门文章

  1. java audiorecord_java – 如何将混响效果附加到AudioRecord / PCM数据并将其保存到文件?...
  2. 新成立公司的会计第一个月要做什么?
  3. 如何识别和调节他人的情绪
  4. 在AWS云服务器上部署Docker,并使用Docker部署ownCloud私有云盘
  5. 最短路径旅游规划Floyd
  6. R语言机器学习mlr3:超参数调优
  7. ffmpeg 音频开发(1):基础知识
  8. linux timeval,Linux上关于C语言的struct timeval{}的一道题
  9. XlsOrXlsxUtil
  10. Android 热更新框架