资源简介 软件编程系列课讲义Scratch 一阶第二十五讲: 躲避攻击一、 教学目标1、掌握移动命令之间的区别,移到最前面、面向鼠标指针、将虚像特效增加()、变量、广播等积木脚本的使用;2、实现僵尸角色的不同移动方式和豌豆射手发射子弹的功能;3、锻炼作品效果分析和编程的能力。二、 主要程序脚本编号 详细内容 功能描述【 1】 “移动()步” 角色向面向方向移动【2】 “面向(鼠标指针)” 面向鼠标指针所在的方向【 3】 “移到最(前面)” 修改角色的图层关系,将角色移到最前面的图层【4】 “将(虚像) 特效设定为()” 设定角色的虚像特效, 虚像特效的值为 0 时, 角色正 常显示,虚像特效的值为 100 时,角色消失【 5】 “将(虚像) 特效增加()” 改变虚像特效的值,将虚像特效增加或减少【6】 “广播()” 发送广播消息,用于角色之间或角色与背景的交互【 7】 “当接收到()” 接收广播消息,用于角色之间或角色与背景的交互三、课堂准备编号 名称 内容 来源 备注【 1】 PPT 课件 课堂全流程演示文稿 火星科学盒官网【2】 课程资料 PPT 课件、讲义、视频 火星科学盒官网【 3】 学生上课使用器材 笔记本电脑或者台式电脑 老师自备 电脑建议使用 Windows 系统,苹果电脑和 Linux 系 统需要从官网上单独下载对应的软件程序素材 链接下载【4】 编程软件下载 Scratch3.0 火星科学盒官网 火星科学盒官网在线编辑版离线下载版安装好后测试一下是否可以使用四、上课流程本节课包括 5 步具体流程:(1) 第 1 步为引入部分, 老师讲解引入本节课编程主题,分析本节课需要完成的任务。时长控制在 5 分钟内。(2) 第 2-4 步为项目制作,首先,分析控制角色移动的命令,将它们进行对比,实现僵尸角色移动的效果。之后添加太阳花角色, 实现太阳花角色被吃掉的效果, 并在编程过程中复习虚像特效等命令的使用。最后添加豌豆射手和子弹角色, 使用克隆、变量 等实现豌豆射手发射子弹的效果。时长控制在 70 分钟内。(3) 第 5 步为课堂总结,总结本节课完成的脚本及重点知识命令。时长控制在 5 分钟内。(4) 第 6 步为巩固拓展, 用提问的形式巩固本节课学习的重点知识命令。时长控制在 10 分钟内上课步骤 主要内容 备注【第 1 步】引入 【对应 PPT】“封面” 【时长】 5min 【衔接话术】植物大战僵尸这个游戏同学们应该都了解吧。这不, 植物和僵尸们又 开启了新一轮的战争, 作为一名勇敢的小火星展示,我们都应该为保卫和平出一份 里, 所以, 今天同学们的任务就是阻止这场战争。不过因为这次植物的军队数量过 于庞大,所以,我们要帮助僵尸们躲避植物的攻击。 【衔接话术】来看一下本节课的任务吧。同学们需要帮助僵尸移到太阳花的位置, 之后吃掉太阳花,并且要躲避植物的攻击。【第 2 步】移到太阳花 【对应 PPT】“移到太阳花” 部分 【时长】 15min 【衔接话术】先通过视频来看一下任务一要完成的效果。需要帮助僵尸一步一步地 走到太阳花的前面。 【衔接话术】同学们先上传初始程序, 之后为僵尸角色拼接脚本, 让它一步步走到 太阳花面前吧。有哪些方法可以实现呢?(学生编写) 【讲解】有这 6 种方法都可以让僵尸走到太阳花的面前。第 1 种是使用[移到x () y() ]命令直接移动;第 2 种是使用[移到太阳花]命令移动;第 3 种是拼接多组[等 待() 秒]和[移动() 步]脚本; 第 4 种是将[等待() 秒]和[移动() 步]脚本拼接在 [重复执行() 次]中; 第 5 种是将[等待() 秒]和[将 x 坐标增加() ] 脚本拼接在[重 复执行() 次]中;第 6 种是使用[在() 秒内滑行到x() y() ]。这几种方法都可以让僵尸走到太阳花的面前,那么,哪种方法更好呢? 【讲解】首先来看一下多组[等待() 秒]和[移动() 步]拼接在一起的脚本。这组脚 本拼接了多组重复到的命令,所以可以使用复制的方法。 【提问】像[移到(太阳花) ]和[移到x() y() ]都是瞬间移动的脚本, 而两组重复 执行和[在()秒内滑行到 x() y() ]是过程移动的脚本,它们之间又有什么区别 呢?(学生回答) 【讲解】瞬间移动时是看不到角色的移动过程的,角色能够瞬间移动到指定位置。 而使用过程移动的脚本时,角色慢慢移动,能够看清楚角色的移动过程。【衔接话术】了解了各种实现角色移动的方式, 同学们能使用这几个积木命令为僵 尸角色设置初始的状态和移动的动作吗? 【提问】 [移到x() y() ] 、[移到最前面] 、[换成() 造型]和[下一个造型]命令的作 用分别是什么呢?(学生回答) 【讲解】 [移到x() y() ]可以设置角色的初始位置, [移到最前面]能够让僵尸角色 不被其他角色遮挡, [换成() 造型]可以为角色设置初始造型, [下一个造型]可以让 僵尸在移动的过程中切换造型,实现边移动边走路的效果。 【讲解】这组脚本可以实现僵尸从初始位置出发,并且边移动边切换造型的效果, 但是因为每次移动的步数太大, 造型切换的效果不明显, 所以我们把[移动() 步]命令中的数字缩小, 让僵尸移动的更加明显。(学生拼接) (程序样例见“第五部分 – 程序 1-1”) 【衔接话术】 同学们把任务一的程序补充完整, 之后尝试修改太阳花的位置, 并让 僵尸角色慢慢地走到太阳花面前。【第 3 步】僵尸吃掉太阳 花 【对应 PPT】“僵尸吃掉太 阳花”部分 【时长】 20min 【衔接话术】历尽千辛, 僵尸终于走到了太阳花的面前, 面对这么好的机会, 僵尸 怎么会放过它呢, 当然是要好好享受这顿美食啦。 任务二中需要同学们实现的效果 就是:让僵尸移到太阳花面前时,太阳花消失,僵尸欢呼。 【提问】现在要让僵尸角色把太阳花吃掉了, 如何表示太阳花被吃掉了呢? (学生 回答) 【讲解】只要在太阳花角色碰到时消失, 就表示太阳花被吃掉了。所以, 需要让太 阳花角色侦测有没有碰到僵尸, 碰到僵尸时就隐藏。另外要注意, 太阳花在一开始 的时候应该显示在舞台上, 所以应该添加[显示]命令。(学生拼接)(程序样例见“第 五部分 – 程序 2-1”)【衔接话术】太阳花一下子就消失了, 这样的效果太突兀, 不太好看, 能不能让太 阳花慢慢地消失呢? 【提问】使用什么命令能够实现太阳花缓慢消失的效果(学生回答) 【讲解】应该使用虚像特效相关的命令, 当虚像特效逐渐增加时, 角色会缓慢消失。所以首先将角色的虚像特效设定为 0,让角色正常显示。之后,让虚像特效逐渐增 加, 当增加到 100 时, 角色消失。(学生拼接)(程序样例见“第五部分 – 程序 2- 2”) 【衔接话术】 僵尸终于吃到太阳花了, 真的是太开心了, 所以它欢呼了起来, 接下 来为僵尸角色添加脚本, 实现僵尸欢呼的效果。同学们根据提示拼接脚本, 实现僵 尸碰到太阳花后说“真好吃”的效果。(学生拼接) (程序样例见 “第五部分 – 程 序 2-3”) 【讲解】僵尸角色应该一直侦测有没有碰到太阳花, 当碰到太阳花时, 就说“真好 吃”2 秒钟。【衔接话术】最后实现欢呼的效果, 首先上传欢呼角色, 之后设置它的初始位置和 初始隐藏状态(学生操作) (程序样例见 “第五部分 – 程序 2-4”) 【提问】一开始的时候, 角色在舞台上是隐藏的, 那么它应该什么时候出现呢?(学 生回答) 【讲解】欢呼角色应该在僵尸吃掉太阳花的时候出现 【提问】那欢呼角色又如何知道僵尸把太阳花吃掉了呢?(学生回答) 【讲解】可以让僵尸角色给欢呼角色发送消失, 使用广播命令可以实现角色之间的 交互。当僵尸角色碰到太阳花时,发送广播消息,欢呼角色接收到广播消息之后,就可以出现了(学生拼接) (程序样例见 “第五部分 – 程序 2-5”) 【衔接话术】 最后为欢呼角色添加出现的效果,让角色伴随着音乐慢慢地出现。 【讲解】应该使用[播放声音() ]的命令播放声音, 使用虚像特效让角色慢慢显示。 (学生拼接) (程序样例见 “第五部分 – 程序 2-6”) 【衔接话术】 同学们把任务二中的脚本全部编写完成, 之后尝试实现太阳花左右摇 摆的效果(学生拼接) (程序样例见 “第五部分 – 程序 2-小挑战”)【第 4 步】 躲避攻击 【对应 PPT】“躲避攻击” 部分 【时长】 25min 【衔接话术】为了保护太阳花, 植物们也派出了豌豆射手去攻击僵尸, 接下来帮助 僵尸移动,躲避豌豆射手发射的子弹吧。需要实现的效果有:豌豆射手自由摇摆, 僵尸跟随鼠标移动,当僵尸被子弹击中时游戏停止。 【衔接话术】首先实现僵尸跟随鼠标移动的效果, 应该使用[面向(鼠标指针) ]命 令。 【讲解】直接在控制僵尸移动的脚本中添加[面向(鼠标指针) ]命令, 修改完成后 运行,运行效果有什么问题存在吗? 【讲解】僵尸移动的速度很慢, 不能快速移动到鼠标所在的位置, 并且移动几次后 就不再移动了。应该将[重复执行() 次]换成[重复执行], 并且把[等待() 秒]放 在重复执行的外面。 (学生拼接) (程序样例见 “第五部分 – 程序 3-1”)【衔接话术】豌豆射手要发动攻击了, 首先上传豌豆射手角色, 之后拼接脚本, 实 现间隔 1~3 秒的随机时间后发射子弹的效果。可以使用自制积木定义发射子弹的过 程,“发射子弹”的自制积木应该如何定义呢? 【讲解】为了多次发射子弹, 应该使用克隆命令, 之后, 将子弹发射的初始位置定 义为豌豆射手所在的位置。 【讲解】克隆出来的新子弹向右不断地移动。 (学生拼接) (程序样例见 “第五部分 – 程序 3-2”)【衔接话术】 在子弹碰到舞台边缘时应该消失, 呈现子弹飞出舞台的效果。僵尸角 色被子弹击中后,应该结束游戏。 【讲解】 让克隆体不断判断是否碰到舞台边缘, 碰到舞台边缘时该克隆体隐藏并被 删除。克隆体碰到僵尸时, 停止全部脚本的运行, 游戏结束。(学生拼接) (程序样 例见 “第五部分 – 程序 3-3”) 【讲解】通过切换造型实现豌豆射手不断摇摆的效果。(学生拼接) (程序样例见“第 五部分 – 程序 3-4”) 【衔接话术】 同学们将任务三的脚本补充完整,之后复制更多的豌豆射手角色。【第 5 步】 课后总结 【对应 PPT】“课后总结” 【总结】本节课主要实现了僵尸跟随鼠标移动, 吃掉太阳花角色并躲避豌豆射手攻 击的功能。在实现僵尸吃掉太阳花的功能时, 使用了条件判断、显示隐藏、虚像特部分 【时长】 5min 效、广播、播放声音等命令。使用面向鼠标指针、重复执行、移动等命令控制僵尸 角色移动。使用随机数、变量、克隆等积木让豌豆射手发射子弹。【第 6 步】 巩固拓展 【对应 PPT】“巩固拓展” 部分 【时长】 10min 【链接话术】本节课的内容到这里就要完成了, 下面我们来简单复习一下所学的内 容,考一考自己的记忆力。 老师以提问的方 式进行复习。【问】 从一个位置移动到另一个位置,常用的有几种表示方法表示?五、主要程序说明程序样例编号 程序样例与说明对应的角色1-1 【程序 1-1 描述】 点击绿旗后,角色切换成指定造型,移到指定位 置,并移到最前面的图层,之后边向前移动边切换造型。 【僵尸】2-1 【程序 2-1 描述】 当绿旗被点击后,角色显示在舞台上,当角色碰 到僵尸角色时,在舞台上消失。 【太阳花】2-2 【程序 2-2 描述】当绿旗被点击后,角色显示,并将虚像特效设定 为 0 。当角色碰到僵尸时,虚像特效逐渐增加,角色慢慢消失2-3 【僵尸】【程序 2-3 描述】 当绿旗被点击后,角色一直侦测有没有碰到太阳 花,当碰到太阳花时,说“真好吃”2 秒钟。2-4 【程序 2-4 描述】 点击绿旗后,角色隐藏并移到指定位置 【good-job】2-5 【程序 2-5 描述】当绿旗被点击后,角色一直侦测有没有碰到太阳 花,当碰到太阳花时,说“真好吃”2 秒钟,之后发送广播消息 “good job”。 【僵尸】【程序 2-5 描述】当角色接收到“good job”的广播消息后,移到 图层的最前面并显示出来。 【good-job】2-6 【程序 2-6 描述】当接收到“good job”的广播消息后,角色移到 图层的最前面,播放声音之后显示并将虚像特效设定为 100.之后, 角色的虚像特效慢慢减小,角色慢慢显示, 最后停止全部脚本的运 行。2-小挑战 【程序 2-小挑战描述】绿旗被点击之后,角色切换成“太阳花-0” 的初始造型,之后不断地切换造型 【太阳花】3-1 【程序 3-1 描述】点击绿旗,等待 0.5 秒后,角色向鼠标指针的方 向移动并切换造型。 【僵尸】3-2 【程序 3-2 描述】点击绿旗后, 等待 1~3 秒角色发射子弹,每隔 3~8 秒角色发射一次子弹。 【程序 3-2 描述】 发射子弹积木的定义:克隆子弹角色,x 变量的 【豌豆射 手】值是豌豆射手角色的 x 坐标,变量 y 的值是豌豆射手角色的 y 坐 标。【程序 3-2 描述】 点击绿旗后,角色隐藏。角色被克隆后,移到指 定位置,之后向上向右一定的距离,呈现被发射的效果。之后显示 在舞台上,一直向右移动。 【子弹】3-3 【程序 3-3 描述】 克隆体不断侦测是否碰到僵尸,碰到僵尸角色时 停止脚本运行。不断侦测是否碰到舞台边缘,碰到舞台边缘时克隆 体隐藏并被删除。3-4 【程序 3-4 描述】 点击绿旗后,切换到指定造型,之后不断切换造 型,实现摇摆的效果。 【豌豆射 手】3-5 【程序 3-5 讲解】切换成“界面”背景后,判断“连续命中”的 值,当“连续命中”的值为 0 时,角色换成 1 星-1 造型,当“连 续命中”的值为 3 时,角色换成 1 星-2 造型, 角色说一段鼓励玩 家的话。 【 1 星】3-小挑战 1 【程序 3-小挑战 1 讲解】切换成“界面”背景后,判断“连续命 中”的值,当“连续命中”的值为 0 时,角色换成 2 星-1 造型, 【 2 星】当“连续命中”的值为 6 时,角色换成 2 星-2 造型,角色说一段 鼓励玩家的话。3-小挑战 2 【程序 3-小挑战 2 讲解】切换成“界面”背景后,判断“连续命 中”的值,当“连续命中”的值为 0 时,角色换成 3 星-1 造型, 当“连续命中”的值为 9 时,角色换成 3 星-2 造型,角色说一段 鼓励玩家的话。 【3 星】(共39张PPT)第25课植物大战僵尸-躲避攻击课程目录学习目标项目拆解逻辑编程课后总结巩固拓展学习目标1学习目标123物与僵尸之间的大战又爆发了,这次我们的任务是帮助僵尸获得胜利。学习“移到最前面”、“面向鼠标指针"、“将虚像特效增加()"、“广播"、“碰到()?”、“变量”、“自制积木”等脚本。综合应用所学脚本完成编程项目以及探究小项目。学习目标主要脚本:项目拆解2想一想整体游戏效果项目拆解任务1:僵尸移到太阳花任务2:僵尸吃掉太阳花任务3:躲避攻击逻辑编程3任务1:设置音乐特效《功能效果展示》任务要求:噩尸一步一步地走到太阳花面前动手做1、上传背景音乐和开场音乐,并编写相关程序①打开Scratch软件,上传初始程序。②编写程序:僵尸移到太阳花的位置。提示:一个格子表示45步参考程序程序复制应该先停止播放“背景音乐”,再开始播放“激情战歌”瞬间移动和过程移动应该先停止播放“背景音乐”,再开始播放“激情战歌”瞬间移动过程移动任务1:僵尸移到太阳花1、设置僵尸的初始状态和移动动作动作不明显怎么办动手编程1.复写“任务1”的程序。2.小挑战:尝试修改太阳花的位置,让僵尸慢慢地走到太阳花面前。任务2:僵尸吃掉太阳花《功能效果展示》任务要求:噩尸移到太阳花处,太阳花消失,僵尸欢呼任务2:设置按键的击中效果1、吃掉太阳花如果表示太阳花被吃掉了呢如果太阳花碰到僵尸,隐藏起来2、太阳花缓慢消失任务2:设置按键的击中效果任务2:设置按键的击中效果3、僵尸欢呼4、添加欢呼效果任务2:设置按键的击中效果效果何时出现4、添加欢呼效果任务2:设置按键的击中效果如何通知通知效果出现4、添加欢呼效果任务2:设置按键的击中效果任务2:设置按键的击中效果5、缓慢出现并伴随声音,游戏停止动手编程1.复写“任务2”的程序。2.小挑战:尝试编写程序让太阳花摇摆起来。任务2-小挑战任务3:躲避攻击《功能效果展示》任务要求:①僵尸跟随移动,碰到子弹游戏停止②豌豆射手自由摇摆任务3:设置按键的击中效果1、跟随鼠标移动运行结果有什么bug,如何解决任务2:设置按键的击中效果2、豌豆射手发起攻击发射子弹的自制积木块应该如何编与呢任务3-1:过关特效1.复写“任务3-1”的程序。2.小挑战:尝试编写“失败”角色的程序。任务1:设置游戏的音乐特效3、完善细节避免子弹发射一颗后就没有了子弹的初始位置为豌豆射手的位置任务2:设置按键的击中效果4、子弹发射子弹的初始位置为豌豆射手的位置微调子弹的位置,做出发射的效果子弹向前移动任务2:设置按键的击中效果4、豌豆射手摇摆起来动手编程1.复写“任务3”的程序。2.小挑战:尝试复制更多的豌豆射手。课后总结4课后总结巩固拓展5Q1:从一个位置移动到另一个位置,常用的有几种表示方法表示?Q & A巩固拓展 展开更多...... 收起↑ 资源列表 25-植物大战僵尸-躲避攻击.docx 25.植物大战僵尸-躲避攻击.pptx