角色说明
1)三个卡牌:阳光卡牌、向日葵卡牌、豌豆卡牌。卡牌位置固定。阳光卡牌下方有阳光数量变量。收集阳光以后,阳光数量增加。使用阳光,可以终止豌豆射手或者向日葵,种植以后,扣减对应的阳光数。
2)背景:草坪、围栏、终点是房子。如果僵尸走到房子边上,就开始吃“脑子”,脑子被吃完,游戏则结束。
3)阳光:阳光会定期随机飘落,可以点击,收集阳光。
4)豌豆射手:会摆动,会发豌豆子弹,打击僵尸。
5)豌豆子弹:种植豌豆以后,豌豆开始发射豌豆子弹。
6)僵尸:分成两个角色,一个是普通前进的角色;一个是碰到向日葵、豌豆射手或到达房子时,吃植物或脑子动作的角色。开始吃的时候,切换成开始吃的角色。
7)向日葵:向日葵会产生阳光。
铁桶僵尸
僵尸被打中两次即消失。
僵尸从屏幕右边随机出现,向左移动。到达左边房子以后,记录位置,广播开始脑子,然后显示第二个开吃脑子的僵尸。如果碰到子弹,打中次数减少1,如果打中次数为零,则打死了,删除克隆体。这里打中次数就是僵尸的生命值。
吃脑子的僵尸
收到吃脑子的广播以后,克隆自己,移动到原僵尸位置,显示,开吃脑子。这里设置了吃十次以后,僵尸消失。
种植豌豆射手(豌豆射手卡牌)
阳光数大于100,可以种植豌豆射手。种植时,立即克隆一个豌豆射手,减少阳光数,否则提示阳光不足。
豌豆射手
豌豆射手启动时,切换造型,实现动画效果。
豌豆射手启动时,跟随鼠标移动,当鼠标被按下以后,记录鼠标的位置,这个变量为角色变量,非全局变量。种植豌豆射手一段时间以后,开始发射豌豆。这里有个关键点,就是鼠标按下,广播发射豌豆以后,要停止当前脚本,即豌豆射手固定在草坪上。
豌豆子弹
接收到豌豆射手发射子弹的广播以后,克隆自己。然后移动到豌豆射手位置,开始向右移动,碰到边缘或者僵尸,重新回到原点,注意不是删除克隆体。
如果打中了僵尸,则子弹需要移回豌豆射手。(这里可改进:如果碰到僵尸,需要考虑射手和僵尸的距离,经过一段时间后再发射下一个豌豆子弹。否则僵尸靠近射手时,子弹的发射速度将加快,这不合理。)
种植向日葵(向日葵卡牌)
阳光数大于50,可以种植向日葵。种植时,立即克隆一个向日葵,减少阳光数,否则提示阳光不足
向日葵
向日葵启动时,切换造型,实现动画效果。
向日葵启动时,跟随鼠标移动,当鼠标被按下以后,记录鼠标的位置,这个变量为角色变量,非全局变量。经过一段时间以后,要停止当前脚本,即豌豆射手固定在草坪上。还未制作向日葵产生太阳的功能。
阳光
初始化阳光。每5秒克隆产生一个阳光。
克隆后,阳关在一定范围内随机产生,然后在一秒内,随机滑行到另外一个地方,停留三秒。点击阳光时,阳光滑回卡牌,阳光增加50。
Scratch游戏——算术植物大战僵尸
文/陈新龙
有些孩子本身对数学题的理解能力不错可惜就是在基础运算上容易出错导致成绩不好,一般会说这是粗心造成的,其实这还是缺乏足够的计算锻炼。为了能让孩子能够快乐的训练枯燥的计算题,提高计算熟练度,作为老师的我就想到了用Scratch做一个植物大战僵尸版的算术游戏,让孩子们能够在游戏中练习,让学习变的不再枯燥。今天和大家一起分享一下制作游戏的过程吧(图1)。
1.脚本设计游戏的角色共有豌豆射手、僵尸、豆豆子弹这三个。游戏中豌豆射手随机给出简单的计算题,收到正确答案后发射豌豆子弹,僵尸不断向左移动,当受到4次攻击后消失,屏幕右边出现新的僵尸开始下一轮计算训练。如果僵尸碰到豌豆射手则游戏失败。当程序开始运行后,背景广播“僵尸出发”,僵尸收到消息开始前进,游戏正式开始。
(1)豌豆射手
豌豆射手角色负责控制和用户交互的部分:询问简单的计算题目,等待用户输入正确的答案。询问的题目来自随机数,用随机1到3代表加减乘三种计算题,除法考虑到会遇到循环小数的问题没有包括在内。例如当随机数为1时,出加法题,以此类推。随机从1到10中取两个变量“数字1”和“数字2”用来参与计算。数字取值范围决定了计算难度,如果改成20以内的四则运算,难度就可以提高不少,还需要相应降低僵尸速度。
(2)豆豆子弹
当用户回答正确的答案后,广播“发射豆豆”,启动豆豆子弹的脚本同时,豌豆射手开始询问下一题。当豆豆子弹角色收到发射指令后,向右移动,直到豆豆击打到僵尸后隐藏。
(3)僵尸
僵尸碰到豆豆子弹扣25点血量,僵尸从游戏开始向豌豆射手方向移动,当碰到豌豆射手后,玩家游戏失败,结束游戏。
游戏的重点之一在于僵尸被击打后,要判断剩余血量,判断玩家是否消灭当前僵尸了,该放出下一个僵尸还是让玩家继续计算下一题。
2.程序脚本(1)舞台背景脚本
在Woods中分别添加两行字,做为游戏中和游戏失败后的背景造型。我们在舞台背景中放置了启动整个游戏的脚本。内容很简单,程序运行后,设置僵尸的移动速度为10,切换到正确的背景,并且设置广播:“僵尸出发”,通知其他角色游戏开始了(图2)。
(2)僵尸脚本
当角色收到“僵尸出发”的广播后,水桶僵尸向左(90度方向)以10的速度移动。如果僵尸碰到了豌豆射手广播:“你失败了”,换成提示失败的背景造型,隐藏自身,停止所有脚本,游戏结束(图3)。
当水桶僵尸的移动过程中,玩家可以靠正确回答问题来对僵尸进行攻击,当用户每回答正确一道题目后,发射一颗豆豆子弹,豆豆子弹碰到僵尸后发出广播“僵尸被打”,僵尸收到广播后血量扣25点,如果僵尸的血量等于0时,玩家成功击退一只僵尸,等待数秒后,僵尸移动到原来位置,恢复最初的血量(图4)。
(3)豌豆射手脚本
当收到“僵尸出发”广播后,触发“出题”的广播,首先新建一个变量运算符从1到3之间随机产生一个随机数,当运算符等于1时做加法运算,等于2时做减法运算,等于3时做乘法运算。两个变量“数字1”和“数字2”分别用作为参与计算的数字。当用户的回答和正确答案相一致的时候,广播“发射豆豆”。如果答案错误,豌豆射手说:“答案错误”(图5)。
(4)豆豆子弹脚本
豆豆子弹角色在收到“发射豆豆”广播后,从豌豆射手位置,重复X坐标增加10,向右移动。碰到僵尸发出广播“僵尸被打”,僵尸扣血,之后隐藏(图6)。
根据小朋友的反应来看,游戏还是挺受欢迎的,我也很高兴他们能够从游戏中体验到学习的快乐。大家也可以在制作这款游戏过程中加入自己的独创性想法。