少儿创客教育系列丛书

12 Scratch游戏程序设计——保卫城堡

  1. 体验游戏

小猫“抓抓”在城堡中游玩,突然听到急促地警报声。原来有一群怪物来空袭城堡,小猫决定参加战斗、保卫城堡。你能够帮助小猫打赢这场战斗吗?

 

单击此处,在线试玩本课的在线范例,看看小猫“抓抓”是如何打击怪物、保卫城堡的。同时完成以下表格:

 

游戏角色

在游戏中的主要动作

 

 

 

 

 

 

 

 

 

 

  1. 游戏初始化及小猫移动效果制作

 

  1. 单击此处,打开本课的空白练习项目页,再单击右上角的“转到设计页”按钮,转到“作品设计页”。在作品设计页添加如上图所示的舞台背景及角色同时设置这些角色的初始化代码
  2. 用自己最喜欢的方法,编写让小猫在屏幕上左右移动的脚本。如果觉得有困难,可以单击此处或者扫描右边的二维码,了解详细的操作步骤。

 

 

  1. 导弹的移动效果制作

要让导弹能够跟随小猫的移动而一起移动,可以使用“动作”类别中的 指令。为了与小猫位置同步,可以在这个指令坐标参数中添加“侦测”类别中的 指令同时为了不断的让导弹跟随小猫移动,还应该使用“控制”类别中的 指令。可以单击此处或者扫描右边的二维码,详细了解具体的操作步骤。

 

根据以上提示,在作品练习设计页为导弹搭建并运行脚本,你发现了什么问题?然后想一想,可能是什么原因造成的?把你的发现和想法记录到学习手册上。

 

 

Scratch中,每个角色都有一个“造型中心”,这个造型中心的坐标,就是“侦测”类别 指令的坐标值。默认情况下,“造型中心”都在角色的中心。因此,导弹只会跟随小猫角色的中心移动,没有显示在小猫的手上。

要想让导弹跟随小猫移动时,显示在小猫的手上。可以按以下步骤操作,也可以单击此处或者扫描右边的二维码,详细了解具体的操作步骤。

  1. 单击“小猫”角色的“造型”选项卡;
  2. 单击选中“小猫”角色的第一个造型;
  3. 单击选中选项卡右上角 按钮;
  4. 最后在造型编辑窗口中拖动鼠标,将“十字光标”拖动到小猫手上。

 

在作品练习设计页中,设置小猫的“造型中心”,使得导弹能够跟随小猫移动。

 

 

  1. 怪物的飞行效果制作

怪物是从屏幕右边飞向左边,可以先用“动作”类别中的指令,让机器人出现在屏幕右边,然后再用 指令,让机器人从屏幕右边滑行到左边

为了让机器人出现的位置、飞行的速度、路径更为灵活,可以在脚本所采用的指令参数中使用“数字和逻辑运算”类别中的 指令,完整的代码如下图所示。也可以单击此处或者扫描右边的二维码,详细了解具体的操作步骤。

 

还能够让机器人飞行的更灵活吗?先在作品练习设计中试一试,调试成功以后,把你的方法填写到学习手册上。

 

 

  1. 导弹的发射及飞行效果制作

导弹的发射,使用了“侦测”类别中的指令作为的条件,当检测到用户按下了“空格键”,就执行导弹飞行的脚本。

而导弹飞行,则是在指令中,添加了指令,使导弹的y坐标值不断增加,也就是向屏幕上方移动。而其中的判断条件,则是由 组合成:。也就是说,在导弹到达屏幕最上方(y>180)或者碰到机器人角色之前,一直不断地增加y坐标值,使导弹向上移动。

完整的代码如下图所示,也可以单击此处或者扫描右边的二维码,详细了解具体的操作步骤。

 

请在作品练习设计页中编写怪物飞行、导弹发射及飞行的脚本。

 

 

  1. 导弹是否击中怪物的检测

导弹是否击中怪物,相应的检测代码可以在导弹角色中编写,也可以在怪物角色中编写由于导弹碰到怪物后,怪物一般需要播放被击中后的声音以及显示被击中的效果,所以相对来说,在怪物角色上编写这段代码更为合适。

以下是在怪物角色上编写的最基本的脚本内容,也可以单击此处或者扫描右边的二维码,详细了解具体的操作步骤。

 

在怪物角色中添加如右图所示导弹击中后的造型然后编写检测它是否被击中、击中后的显示效果脚本

 

 

  1. 闪电的发射及飞行效果制作

导弹是由小猫发射的,用于打击入侵的怪物;而闪电是由怪物自动发射,用于打击保卫城堡的小猫。这两段代码基本相同。可以单击此处或者扫描右边的二维码,详细了解具体的操作步骤。

 

与导弹的代码相比,闪电的代码中最大的不同是什么?这样设计的目的是什么?把你的想法填写到学习手册上。

 

 

  1. 添加计时、计分及生命系统

一个完整的游戏,需要有一定的游戏时间限制,还应该有分数及生命值累计功能可以在游戏中创建“成绩”、“时间”、“生命”这三个变量。可以单击此处或者扫描右边的二维码,详细了解相关知识和具体操作步骤。

其中游戏“成绩”初始值可以设置为100。如果小猫所发射的导弹没有击中怪物,成绩减少10分;如果击中了,成绩增加10分。

游戏“时间”初始值可以设置为120秒。每过一秒钟,游戏时间减少1;当游戏时间减少到0时,游戏结束。

小猫“生命”初始值可以设置为3。如果被闪电击中,生命值减少1;当生命值减少到0时,游戏结束。

这些变量的初始值设置及检测,一般都可以在舞台中添加脚本。

当接收到“游戏结束”的消息以后,应该切换到如下图所示的舞台背景,然后停止执行所有角色的程序。

 

  1. 在舞台脚本中编写游戏的计时、计分及生命系统;
  2. “小猫”角色中添加被闪电击中后,“生命”值减少的脚本;
  3. 为“导弹”、“怪物”角色中添加游戏“成绩”的累计减少、增加的脚本。

 

 

 

 

除了“保卫城堡”这个游戏,你能够自己设计一个游戏吗?试着想一想、做一做,不断完善游戏,提高游戏的耐玩性。