第4课 我是小小火箭兵
4.1 课程简介
(1)本课的课程名称是“我是小小火箭兵”。火箭军是保卫国家必不可少的重要力量,是强军的国之重器。当兵是每个人童年的梦想,立志报国是我们共同的心愿。
(2)构思和设计这样一个动画故事:我当上了火箭兵,将要执行火箭发射任务,童年的梦想马上就要实现了。
(3)课时建议:总用时45分钟,其中老师讲解10分钟,学生设计创作20分钟,学生交流分享7分钟,老师点评总结8分钟。分组建议:2或3人一组。
4.2 课程准备
同第1课。
4.3 课程的STEAM元素
(1)科学:火箭技术是关于火箭的原理、设计、制造、试验和使用的一门科学技术。火箭垂直发射时,火箭竖立在发射台上,运送有效载荷(如卫星、飞船、弹头等)起飞、加速并送入预定轨道。
火箭是一种以火箭发动机为动力的飞行器,它自身带有全部燃料(燃烧剂和氧化剂),能在火箭发动机喷气推动下飞行。一般说来,火箭喷出气体的速度越大,其所能达到的速度也就越大。只有火箭速度达到第一宇宙速度(约每秒8千米)时,才能使火箭本身或运载的卫星围绕地球长时间飞行。
(2)工程:通常,火箭由有效载荷(弹头、卫星或其他空间飞行器)、壳体结构(包括燃料容器、仪器舱和发动机舱)、动力装置和控制系统等部分组成。动力装置主要是指供燃料(推进剂)燃烧产生喷气的部分。控制系统是用来调整火箭飞行方向和路线的。按照其动力装置的喷气物质可分为化学能火箭、原子火箭(核火箭)、离子火箭和光子火箭。
能利用互联网搜集更多的信息来更进一步学习和了解关于火箭的科学技术知识,改进和完善自己的项目;做更多有关该主题的创作设计。
(3)技术:了解编程是什么;能综合应用多学科知识和编程技能,设计符合你所构思的小动画和小游戏,把想法通过编程变成现实;了解火箭的原理;了解如何利用编程实现火箭发射时改变轨迹的效果;初步掌握事件指令“广播……”和“当接收到……”,以实现角色之间的联系和互动。
(4)艺术:初步掌握动画设计技巧,增强美术修养;综合使用颜色增强、声音、音乐,表达火箭发射的气氛;掌握给动画编配音乐的原则和方法。
(5)思维和能力:启发学生的好奇心,锻炼学生的想象力,培养学生的逻辑思维和沟通协作能力。综合利用动画、颜色特效、音乐,表达现实场景。
4.4 提问与想象
旨在围绕主题让学生提出感兴趣的可以探讨的主题。课堂上,创设问题情境是关键,教师让学生想象火箭是什么、火箭有什么用途、为什么火箭能把飞船和卫星送上太空等。教师要重点指导学生创作和设计本作品的方案,并阐述其中的想法。
(1)火箭发射的原理是什么?
(2)火箭在飞行时,为什么能够改变飞行方向和路线?如何通过编程实现?
(3)如何实现火箭发射时的动态效果?
(4)如何使发射的场景更加真实?
4.5 讨论与计划
旨在思考解决问题的对策和实现的方法。不同小组的同学提出了各种实现火箭发射的方案和办法,说明本作品实现的原理和所需准备的素材,探讨创作中的STEAM元素。教师要重点指导确定作品设计的最终方案,并准备相关素材。
4.5.1 设计方案
(1)设计一个火箭或类似火箭的图片,根据火箭垂直发射原理,将火箭垂直放在舞台的某个位置,考虑到火箭向上飞行一段时间后,还要改变飞行方向,将火箭放在舞台的左下角。当用鼠标单击火箭时,火箭开始发射,在向上飞行一段距离后,改变飞行方向开始向右上方飞行。
(2)设计三个舞台背景,背景是与火箭发射相关的场景,程序开始执行时,切换背景,以增强场景效果。
(3)火箭发射时,配上火箭发射时的声音,以进一步增加效果。
(4)再设计一张背景图片,火箭发射成功后,解放军和童年时的解放军致敬,并播放歌曲《强军战歌》,以烘托和渲染气氛,达到发展火箭的目的。
(5)给本课动画配上音乐,培养学生的音乐艺术素养。选择什么音乐好呢?可以从网络上下载儿童歌曲《我是勇敢小兵兵》和歌曲《强军战歌》。注意,音乐的内容、节奏、风格等应该与本课动画相呼应。
4.5.2 素材准备
(1)火箭:自己动手设计一个火箭或类似火箭的角色,如图4.1所示。
图4.1 火箭
(2)背景:设计三幅与本课内容相符的背景图片,用系统自带的画图板或其他画图软件设计均可。本课中的背景比较复杂,我们从网上下载并进行加工(裁剪、美化、拼接等),尺寸是960×720(单位是像素),舞台的一个单位等于两个像素,如图4.2~图4.4所示。
图4.2 背景-1
图4.3 背景-2
图4.4 背景-3
(3)小小火箭兵:自己动手设计一个小朋友敬礼的角色,如图4.5所示。
图4.5 小小火箭兵
(4)音乐:从网络上下载儿童歌曲《我是勇敢小兵兵》、歌曲《强军战歌》。注意,音乐的内容、节奏、风格等应该与本课动画相呼应。
4.6 设计与创作
旨在通过学生亲自实践,设计并完善作品。不同小组的同学动手设计作品,记录问题。教师要重点指导设计程序的创作步骤、重点、难点。
4.6.1 打开已有项目
(1)如果已经有了本课的案例程序,请打开Scratch3.0系统,在系统主界面的左上方单击“文件”菜单,在显示出来的菜单里再单击“从电脑中上传”,此时选择需要打开的Scratch项目程序即可,Scratch3.0的文件扩展名是.sb3。参见图1.18。
(2)打开程序后,代码(图形化程序)就会出现在系统的代码区。此时,就可以用鼠标拖动代码里的指令(积木块),进行模仿学习,老师也可以按照这种方法进行演示和教学。也可以修改代码。
(3)也可以修改代码区里的代码。当需要删除某条指令或某段代码时,鼠标移到该指令,按住鼠标左键,直接用鼠标左键将指令积木拖动到指令库里,然后松开鼠标即可。当需要添加某条指令时,鼠标移到指令库里的某条指令,按住鼠标左键,直接用鼠标左键将指令积木拖动到代码区,然后松开鼠标即可。
(4)注意:如果修改了代码,请确认修改的代码正确无误后,单击主界面左上方“文件”菜单,在显示出来的菜单里单击“保存到电脑”,保存的文件名不变。如果不能确定修改的代码是否正确,可以在单击菜单“保存到电脑”后,重新给该项目命名,之前的程序依然存在。
4.6.2 新建一个项目
(1)如果还没有本课的案例程序,请打开Scratch3.0系统,在主界面的左上方单击“文件”菜单,在显示出来的菜单里单击“新建项目”,此时会出现Scratch3.0系统的默认界面,参见图1.19。
(2)默认的主界面的代码区是空白的,舞台中央默认的角色是一个小猫,角色名称是“角色1”,这是Scratch3.0系统的标志。此时,单击“文件”菜单,在显示出来的菜单里单击“保存到电脑”,给新建的项目起一个名字(命名),名字应该与项目的内容相符,本课的名称是“我是小小火箭兵”。命名后,将此项目保存在电脑里的某个位置。
(3)此时,可以按照下面的代码用鼠标左键拖动指令库里的指令到代码区,全部完成后,就可以单击主界面上方的“小绿旗”执行程序。如果有问题,请检查程序是否正确。
4.6.3 编写代码
1.火箭的代码
(1)打开Scratch3.0编程系统,出现Scratch3.0编程主界面。此时在主界面右上方的舞台上,系统默认的角色是一个小猫(Scratch3.0系统的标志),名称是“角色1”。
(2)因为本课不需要角色小猫,所以,单击舞台下方角色区域的小猫(角色1),此时小猫会变成蓝色,同时在此图标右上角出现一个“x”。单击“x”删除该角色,也可以单击鼠标右键,在出现的菜单里选择“删除”,即将角色小猫删除。
(3)新建1个角色“火箭”。在舞台下方的角色区域,鼠标指向“新建角色”图标,在显示出来的菜单里单击“上传角色”,将事先准备好的如图4.1所示的火箭图片上传。
(4)鼠标左键单击主界面左上方的“代码”标签,按照如图4.6~图4.8所示,用鼠标左键从主界面左侧的指令库里拖动指令到代码区域(主界面中间)。具体操作方法及注意事项请参考本丛书的第1册(《Scratch3.0编程基础及指令详解》)。
图4.6 火箭的代码-1
图4.7 火箭的代码-2
图4.8 火箭的代码-3
2.小小火箭兵的代码
(1)按照与火箭相同的操作步骤和方法,新建1个角色“小小火箭兵”。在舞台下方的角色区域,鼠标指向“新建角色”图标,在显示出来的菜单里单击“上传角色”,将事先准备好的如图4.5所示的小小火箭兵图片上传。
(2)鼠标左键单击主界面左上方的“代码”标签,按照图4.9所示,用鼠标左键从主界面左侧的指令库里拖动指令到代码区域(主界面中间)。具体操作方法及注意事项请参考本丛书的第1册(《Scratch3.0编程基础及指令详解》)。
图4.9 小小火箭兵的代码
3.背景的代码
(1)鼠标单击舞台下方的背景,舞台的默认背景是白色的,参见图1.25。请注意,此时系统主界面左上方的标签的变化。针对角色,标签名称是“代码”“造型”和“声音”。针对背景,标签名称是“代码”“背景”和“声音”。
(2)系统默认的舞台背景是白色的,为增强动画视觉效果,鼠标单击舞台下方的背景,紧接着单击主界面左上方的“背景”标签,鼠标指向左下方的“新建背景”图标,在显示出来的菜单里单击“上传背景”,将事先准备好的如图4.2~图4.4的背景图片上传。
(3)鼠标指向“新建背景”图标,在显示出来的菜单里可以看出,新建背景有四种方法,即“选择一个背景”(从系统自带的背景库里选择)、“绘制”“随机”(系统自带的背景库里随机选择,即系统自动选择)和“上传声音”。
(4)鼠标左键单击主界面左上方的“代码”标签,按照图4.10和图4.11所示,用鼠标左键从主界面左侧的积木库里拖动积木到代码区域(主界面中间)。具体操作方法及注意事项请参考本丛书的第1册(《Scratch3.0编程基础及指令详解》)。
图4.10 背景的代码-1
图4.11 背景的代码-2
4.运行程序
(1)至此,本课脚本编写已经完成。单击系统舞台上方的“小绿旗”,运行程序,检查程序是否正确。程序的具体调试方法和注意事项请参考本丛书的第1册(《Scratch3.0编程基础及指令详解》)。
(2)程序执行的效果截图,如图4.12和图4.13所示。请注意,该截图仅仅是程序执行到某一时刻的效果,不可能反映程序执行的整体效果。
图4.12 程序执行效果截图(1)
图4.13 程序执行效果截图(2)
4.6.4 要点和难点说明
注意:每一课的要点和难点说明在以后的各课中不重复说明。
(1)为烘托火箭发射的气氛,程序开始执行时,先顺序切换显示三幅背景图片,然后在舞台左下角显示火箭。为提示大家并突出显示火箭已经进入发射状态,使用外观指令“将颜色特效增加……”和控制指令“重复执行”,使火箭的颜色重复发生变化。
(2)火箭在等待发射时,用外观指令“说……秒”,提示大家“我是小小火箭兵,鼠标单击我发射!”,此时播放儿童歌曲《我是勇敢小兵兵》。
(3)当用鼠标单击火箭时,火箭开始发射,火箭先向上飞行,配合播放火箭发射声音。在火箭向上飞行一段距离后,火箭开始向舞台右上方飞行。我们使用了如下两个指令来实现这两个动作,见图4.14。
图4.14 火箭飞行代码
(4)什么时候火箭发射成功呢?当火箭向右上角飞行,最终会碰到舞台边缘,当火箭碰到舞台边缘时,隐藏火箭,等若干秒后,火箭就发射成功了。此时,使用事件指令“广播……”,这里需要新建广播消息“发射成功”,所有的角色或背景都会接收到“发射成功”的消息,但只有相关的角色和背景才会有所反应。如何反应呢?可以通过编程来具体实现,如图4.6、图4.9和图4.11所示。
(5)当单击事件指令“广播……”右侧白色的箭头时,会出现如图4.15所示的下拉菜单,可以看出,菜单里有已经建立的消息“发射成功”。
图4.15 广播消息的说明
(6)从图4.15可以看到,还有一个系统默认的“新消息”,用于建立新的消息。当单击下拉菜单里的“新消息”时,会出现如图4.16所示的界面,此时,从键盘上输入想新建的消息名称单击“确定”按钮即可。当新消息建好后,在事件指令“广播……”的下拉菜单里就会出现这个新消息名称,此时就可以使用了。
图4.16 新建广播消息的说明
(7)当建立了新的消息后,单击事件指令“当接收到……”的下拉菜单时,会出现所建立的全部消息名称和新消息(用于新建消息),如图4.17所示。
(8)本课中,当背景接收到“发射成功”的消息时,背景需要切换,见图4.11;当角色“小小火箭兵”接收到此消息时,小小火箭兵显示在舞台上,并告诉大家“热烈祝贺火箭发射成功!”,同时播放歌曲《强军战歌》,见图4.9。具体操作方法及注意事项请参考本丛书的第1册(《Scratch3.0编程基础及指令详解》)。
图4.17 接收消息的说明
(9)事件指令“广播……”,实质是在背景及多个角色之间建立了“沟通”通道,各个事件的发生是存在时间顺序和内在的逻辑关系的。角色越多,程序越复杂,“广播……”指令就越重要,也十分方便。
4.7 测评与提升
不同小组的同学展示自己的作品,着重说明作品的设计原理、方法和特点,并分享设计中遇到的挑战和解决的办法。教师重点指导如何完善与提高作品。
(1)本课需要解决的问题包括:鼠标单击火箭时,火箭才能发射;火箭飞行方向的改变;利用“广播……”建立角色、背景之间的相互关联;适合本课场景的音乐等。
(2)程序是非常灵活的,为达到一个目的或效果,程序的设计也是千变万化的,可以有多种解决方法和实现路径。多学习,多实践,多总结,举一反三,便会逐步得心应手,灵活运用。
4.8 分享与展示
不同小组的同学继续分享各自思考和设计创作中的经验,从肯定、否定、兴趣点3个维度做出互评。教师重点指导如何科学有效地进行评价。
(1)为达到一个创意目的,或实现一个效果,程序的设计虽然可以有多种方案和方法,但好的程序除了程序执行的正确性外,还要求程序是“高效简洁”“容易理解”的。
(2)容易理解的程序会给自己和别人在调试程序和今后修改程序时带来极大的方便,而简洁的程序会提高程序的执行效率并有助于阅读程序。
4.9 反思与总结
不同小组的学生代表呈现互评结果,师生交流学习历程。教师重点指导学生如何进行有效的反思。
(1)绝对完美的程序基本上是没有的,如同我们写一篇作文,可以反复修改完善,精益求精。
(2)另外,作品的创意更是可以在程序的设计过程中,逐步求精,趋于完美。因为只有在实际的程序设计中,才会发现问题,才会有更多更好的想法。
4.10 本课知识技能
(1)事件指令:当“小绿旗”被点击;当角色被点击;广播……;当接收到……。
(2)控制指令:重复执行;等待……秒;移到x:……y:……;在……秒内滑行到x:……y:……;面向……方向;移动……步。
(3)侦测指令:碰到……?。
(4)运算指令:在……和……之间取随机数。
(5)声音指令:播放声音……等待播完;将音量增加……。
(6)外观指令:显示;隐藏;将大小设为……。
4.11 举一反三
(1)如何实现火箭点火时更加逼真的场景?
(2)本课中,火箭飞行到舞台外就隐藏了,如何实现火箭飞到了遥远的太空?
(3)参考本课程序,将火箭变成地对空导弹,导弹可以连续发射。动动脑筋,如何实现呢?
(4)同学们可以改变本课代码里的参数,执行一下,看看有什么变化?思考一下,为什么?