1.学习目标与任务 #
1.1 学习目标 #
(1)学习通过点击图标触发不同事件
(2)学习通过点击,将角色放置于指定方格内
(3)克隆的熟练运用
1.2 课堂任务 #
植物大战僵尸是一款经典的塔防游戏。其中角色较多、动作较为复杂,制作起来也有一定难度。
我们将用3节课通过Scratch实现这个经典游戏!
1.3 作品分析 #
(1)游戏中共有几种植物可以抵御僵尸入侵?分别是什么植物?
(2)各个植物下方数字所代表的含义是什么?
(3)游戏中是通过什么操作来放置各个植物的?
(4)游戏中植物可以被随机放置在任何位置吗?
(5)如何实现游戏中植物位置的设置呢?
2.编程思路与步骤 #
2.1 编程思路 #
(1)导入游戏中各类素材
(2)设置不同卡牌的对应点击事件,当卡牌被点击的时候,如果阳光值足够的话,就广播生成相应植物消息
(这节课只需要设置向日葵、土豆和豌豆射手三种植物)
(3)设置“植物”造型,当接收到“生成**”消息之后,造型就切换成相应造型
(4)“植物”持续跟随鼠标,直到鼠标移动到田地内并被按下
(5)根据鼠标按下位置处的坐标,设置植物被放下时的坐标(植物只能出现在指定方格内,不能在其他地方)
(5)当“植物”被放下后,“植物”隐藏。并在“植物”所在处克隆相应植物。
3.2 编程步骤 #
(1)导入怪物素材,添加游戏胜利和游戏失败背景
(2)建立变量“阳光值”并将初始值设定为200.设置不同卡牌的对应点击事件
当卡牌被点击的时候,如果当前阳光值大于等于植物所需最低阳光值,广播生成相应植物消息。
否则说“没有足够的阳光值”
(3)设置“植物”造型,当接收到“生成**”消息之后,造型就切换成相应造型
(4)“植物”持续跟随鼠标
(5)跟随过程中持续检测鼠标是否被点击,
如果鼠标被点击并且被点击位置在田地里,就根据被点击位置将植物放下来
(植物只能放到制定田格内,需要通过鼠标坐标计算,当前在第几个田格),并减少相应阳光值
a、只有同时满足鼠标被点击,且被点击区域在田地内的时候才将植物放下
b、因为设置植物被放下坐标这个命令会被重复用到,这里使用了自制积木,这样方便代码重用
(6)当“植物”被放下后,“植物”隐藏,并在“植物”所在处克隆相应植物
4.问答和课后练习 #
4.1 上述游戏中是使用逐个检测的方法来确定植物被放下位置的,这种方式有什么缺陷?
是否可以通过数据计算的方法来实现呢?
4.2 课后习题
请使用计算的方式,确定植物被放下坐标。