跳至正文
View Categories

< 1 min read

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 上述游戏中是使用逐个检测的方法来确定植物被放下位置的,这种方式有什么缺陷?

是否可以通过数据计算的方法来实现呢?

此图像的alt属性为空;文件名为image-149-1024x955.png

4.2 课后习题

请使用计算的方式,确定植物被放下坐标。