制作一款电子游戏,让游戏玩家乘坐直升飞机探索火星,就像和美国航空航天局(NASA)的“毅力”号(Perseverance)漫游车一起前往火星的“机智”号(Ingenuity)直升机一样。使用Scratch(一种可视化编程语言),像NASA的太空任务规划人员一样设计你的游戏吧!
---
在本期“学习太空”节目中,你将制作一个电子游戏,让玩家乘坐直升飞机探索火星,就像和NASA的“毅力”号漫游车一起前往火星的“机智”号直升机一样!可以在SpaceDaily会员专区观看视频教程。
请参阅下面的材料和步骤说明。更多类似的视频教程和活动,请访问“学习太空”( Learning Space)。
材料
- 有网络连接的计算机
- 免费Scratch账号(https://scratch.mit.edu/)
https://www.jpl.nasa.gov/edu/images/activities/scratchhelicopter_backdrops.zip)
https://www.jpl.nasa.gov/edu/images/activities/scratchhelicopter_sprite.png,点击鼠标右键选择“另存为”)
https://www.jpl.nasa.gov/edu/images/activities/scratch_fetchrover_sampletube_sprite.png,点击鼠标右键选择“另存为”)
1. 设置
下载火星表面图像、火星直升机角色图片和火星样品管角色图片,并将它们保存到电脑中。将火星表面图像压缩文件解压缩到一个新文件夹中。每个文件都有jpg和png版本。
在Scratch网站上,点击“创建”(Create)开始一个新项目。(如果你想保存你的作品,以便将来重新访问或重新设计你的游戏,请登录或创建一个账户。)
创建一个新背景:将鼠标移至右下角“舞台”(Stage)窗口中的“选择一个背景”(Choose a Backdrop)图标上,然后选择“上传背景”(Upload Backdrop)。在下载好的火星表面图像中选择你想要的图。现在,屏幕上的“舞台”区域应该显示你选择的背景图片。示例图片如下:
创建一个新的角色:将鼠标移至“角色”(Sprites)窗口中的“选择一个角色”(Choose a sprite)上,然后选择“上传角色”(Upload Sprite)。选择下载好的直升机角色图片。现在,你的背景图片上应该会出现一架直升机,同时还有默认的小猫角色。示例图片如下:
在“角色”窗口中点击现有的小猫角色,然后点击右上角的“×”,把它删掉。
选择直升机角色后,你就可以创建管理游戏和控制直升机的代码了!
2. 让直升机飞起来
NASA的火星直升机是一项技术演示,旨在证明小型、轻质直升机可以在火星稀薄的大气层中飞行。火星上的直升机不能用操纵杆或键盘控制,但在将来,去到火星轨道上或火星表面的宇航员可以使用遥控器驾驶直升机。你的游戏可以用键盘上的按键让直升机飞起来。
任务
使用键盘上的“上下左右”四个按键使直升机在屏幕向上下左右飞行。提示:查看“控制”(Control)部分的图块是否有帮助,示例图片如下:
指定每次按下在代码模块上定义的一个键时,直升机将移动多远。在选择具体数字时,须要考虑按下按键触发指令时直升机的移动是否平稳。提示:查看“运动”(Motion)部分的模块是否有帮助,示例图片如下:
让直升机无论朝哪个方向飞行,都能保持旋翼在顶部的方向。
附加任务:创建一个脚本,使用角色“造型”(Costumes)让直升机看起来会旋转。
3. 添加起飞位置
“毅力”号火星探测器在火星上着陆后,会将火星直升机放置在火星表面的第一个起飞位置。你可以通过创建脚本,在游戏开始时将直升机放置在特定位置,从而为直升机指定起飞的位置。
任务
创建代码,在游戏开始时将直升机置于特定位置。确保直升机从地面而不是天空起飞。
附加任务:修改着陆代码,使直升机在地面随机位置启动。
4. 添加着陆点
与地球上的直升机一样,火星直升机也需要着陆。
任务
在背景图片上创建一个可见的着陆目标。你可以使用背景编辑器绘制着陆点,也可以添加一个角色作为着陆目标。避免将着陆目标放在大石头上,以免着陆时损坏直升机。虽然真实的火星直升机在飞行时不会有标记的着陆点,但你的游戏玩家须要知道在哪里着陆。
附加任务:创建代码,将一片未被标记的区域确定为安全着陆区,让游戏玩家必须通过尝试在不同区域着陆来找到这片区域。记住,你须要将这些未被标记的区域设在没有大石头的地方。
5. 添加火星样本采集管
在火星表面,“毅力”号火星探测器正在存放装满岩石样本的样本管,在未来的任务中,类似“机智”号的火星直升机可以将这些样本管收集起来,然后用小型火箭送回地球。你可以通过添加须要收集的火星样本收集管来给游戏玩家布置任务。
任务
在游戏中添加两个或更多样本收集管角色。
创建代码,让直升机到达样本管时,样本管会显示已被收集。
6. 添加倒计时器
限制飞行时间的一个重要因素,就是直升机电池中的电量。你可以创建一个计时器,作为游戏结束的倒计时,也就是直升机飞行结束的时间。倒计时不能设置得太短或太长,要让游戏玩家在有可能取得胜利的前提下也能感受到游戏的挑战性。如果你改变了直升机的速度或着陆地点,可能也须要相应地调整倒计时时长。
任务
创建一个计时器,从设定的时间开始倒计时直到零分零秒。提示:创建一个可以编程更改的时间变量。示例图片如下:
当计时器到零时,让游戏停止。
当计时器到零时,显示“任务结束”的文字提示。
当游戏玩家点击绿色小旗重新开始游戏时,让计时器重新开始倒计时。
附加任务:创建代码,让直升机无论处在何处,都能在计时器归零时降落到火星表面。
7. 增加评分系统
火星任务没有计分系统,但收集到的科学信息实际上具有很高的价值,有些发现可能比其他发现更令人兴奋、更有趣或者更重要。为了确定玩家在游戏中的表现如何,你可以制定一个计分系统,包括收集样本管所获得的分数。你可以决定如何计算总分,也可以对游戏进行编程,在某些情况下降低玩家的总分。
任务
创建代码,建立一个计分系统。
每收集一个样本管就增加一分或几分。
8. 说明任务成功!
火星直升机是一项技术演示任务,它将帮助NASA证明直升机可以在火星上飞行,而这是史无前例的。当火星直升机在火星上进行首次受控飞行时,任务就成功了。
任务
创建代码,一旦直升机在着陆点安全着陆,就宣布任务成功。
在着陆时停止游戏。
创建一个脚本,在任务成功时停止运行任务。
参考来源:
[1]https://www.jpl.nasa.gov/edu/learn/project/code-a-mars-helicopter-video-game/
[2]https://www.jpl.nasa.gov/edu/learning-space
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved