查看原文
其他

送书 | 编程真好玩,我编写了一个植物大战僵尸

脚本之家 2021-06-30

The following article is from 异步图书 Author 异步图书

脚本之家

你与百万开发者在一起

来源 | 异步 | 文末赠书

学编程现在有多火,小编就不多说啦!很多爸爸妈妈都想让小朋友早点接触编程,掌握这门未来世界的通用“语言”,但又怕太难、没有趣味性孩子没兴趣。

今天给大家推荐一本有趣味性的的全新基于全新Scratch 3.0的编程书——《Scratch 3.0少儿游戏趣味编程》。

这本书全彩印刷,通过15款有趣的小游戏和小程序,由浅入深地介绍Scratch 3.0编程的基本技能以及程序设计的思维和方法。并且按照初级、中级和GJ3个难度层次,详细介绍15款趣味游戏的开发过程。

植物大战僵尸是一款益智策略类单机游戏。玩家通过武装多种植物来切换攻击僵尸的不同功能,快速有效地把僵尸阻挡在入侵的道路上。这款游戏刚一推出,就受到了玩家的喜爱。在本文中,我们用Scratch 3.0来编写一个简单版本的植物大战僵尸。玩家积攒足够的阳光,通过左键点击植物卡片选中需要的植物,然后在草坪上再次点击左键,就可以种植各种植物,和入侵僵尸对抗。


01Scratch 3.0新功能


Scratch 3.0是继Scratch 2.0取得巨大成功后,MIT发布的最新版本。它是一个经过完全重新设计和实现的版本。

Scratch 3.0是使用HTML 5编写的,这和基于Adobe Flash技术的Scratch 2.0有很大的不同,得到更加普遍的支持,并且不需要任何的插件就可以运行。

通过细致的对比,我们发现Scratch 3.0的更新有如下几个核心原则,一是功能更加完备,二是让新用户更容易上手,三是更好地适应多种设备,尤其是移动设备(平板电脑和手机)。

02植物大战僵尸


“植物大战僵尸”是很多小朋友都喜爱的游戏。用Scratch 3.0来编写一个简单版本的植物大战僵尸,跟着步骤指引,一起动手试试看!


这款游戏包含18个角色,分别是表示植物太阳花、豌豆射手、坚果、樱桃炸弹和火爆辣椒这5种卡牌,还有植物、太阳花、豌豆射手、坚果、火爆辣椒的火焰、阳光、豌豆子弹、僵尸、僵尸2、房子、开始界面、胜利界面和失败界面。

  • 角色太阳花卡牌、豌豆射手卡牌、坚果卡牌、火爆辣椒卡牌和樱桃炸弹卡牌这5种类型的卡牌,提供了让玩家选择的植物类型。点击对应卡牌就表示选中相应的植物。

  • 角色豌豆射手是一种植物,可以生成攻击僵尸的豌豆子弹。

  • 角色僵尸和僵尸2是玩家的敌人,当它通过了草坪攻击到房子,表示玩家失败了。

下面我们会分别介绍每种角色的造型、声音和脚本。

另外,我们还创建了8个变量。

植物的X坐标:种植植物时的x坐标,这是个隐藏变量。

植物的Y坐标:种植植物时的y坐标,这是个隐藏变量。

等待豌豆生成:生成豌豆子弹的间隔时间,这是个隐藏变量。

等待阳光生成:生成阳光的间隔时间,这是个隐藏变量。

获胜:是否获胜,1表示胜利,0表示没有胜利,这是个隐藏变量。

豌豆数:决定哪个豌豆射手生成豌豆子弹的系数,这是个隐藏变量。

阳光数:决定哪个太阳花生成阳光的系数,这是个隐藏变量。

阳光值:收集到的阳光值,只有足够的阳光值,才能种植植物,在舞台上显示它的监视器。

还有4个列表,分别是:

太阳花x坐标:表示种植太阳花的x坐标的列表。

太阳花y坐标:表示种植太阳花的y坐标的列表。

豌豆射手X坐标:表示种植豌豆射手的x坐标的列表。

豌豆射手Y坐标:表示种植豌豆射手的y坐标的列表。

1.背景

造型

我们用草地作为游戏的背景,上面放置了用来摆放卡牌的框。

声音

我们设置了两种音效,分别是游戏的背景音乐和获胜后播放的音效。

脚本

第1步

程序启动时设置变量的初始值和背景音乐。

将变量“阳光值”设置为50,将“获胜”设置为“否”。重复执行以下代码。如果“获胜”的值没有变化,就一直播放背景音乐。

第2步

当接收到“游戏启动”消息时设置游戏的长度,当时间到了,广播“获胜”消息并播放音乐。

等待300秒,这是本局游戏的时间长度。300秒过后,广播消息“获胜”。将变量“获胜”设置为“是”,表示玩家获胜。停播所有声音,播放“胜利”音效。停止全部脚本。

2.开始界面角色

造型

这里是游戏的启动界面。

脚本

这个角色只有1段脚本,就是当点击绿色旗帜时,显示角色。按下空格键后,广播“游戏启动”消息,表示开始游戏。然后隐藏角色。

3.太阳花卡牌角色

造型

太阳花卡牌只有1个造型。

脚本

将“太阳花卡牌”角色移动到指定位置。以下内容重复执行。如果在该卡牌上点击鼠标:如果阳光值大于等于50,广播消息“生成太阳花”;否则,提醒“没有足够的阳光值”。

4.豌豆射手卡牌角色

造型

豌豆射手卡牌只有1个造型。

脚本

将“豌豆射手卡牌”角色移动到指定位置。当玩家在该卡牌上点击:如果阳光值大于等于100,广播消息“生成豌豆射手”;否则,提醒“没有足够的阳光值”。

5.坚果卡牌角色

造型

坚果卡牌只有1个造型。

脚本

将“坚果卡牌”角色移动到指定位置。当玩家在该卡牌上点击:如果阳光值大于等于50,广播消息“生成坚果”;否则,提醒“没有足够的阳光值”。

6.火爆辣椒卡牌角色

造型

火爆辣椒卡牌只有1个造型。

脚本

将“火爆辣椒卡牌”移动到指定位置。当玩家在该卡牌上点击:如果阳光值大于等于125,广播消息“生成火爆辣椒”;否则,提醒“没有足够的阳光值”。

7.樱桃炸弹卡牌角色

造型

樱桃炸弹卡牌只有1个造型。

脚本

将“樱桃炸弹卡牌”角色移动到指定位置。当玩家在该卡牌上点击:如果阳光值大于等于150,广播消息“生成樱桃炸弹”;否则,提醒“没有足够的阳光值”。

8.植物角色

造型

植物有6个造型。

声音

有两个本地上传的音效,表示“樱桃炸弹”爆炸的声音和“火爆辣椒”燃烧的声音。

脚本

这个角色中,一共有9段脚本。其中有两个自定义的积木,用于根据鼠标位置,定位到的变量“植物的X坐标”和“植物的Y坐标”。

第1步

鼠标的x坐标在某个范围内,就为变量“植物的X坐标”设置指定的值。

第2步

鼠标的y坐标在某个范围内,就为变量“植物的Y坐标”设置指定的值。

第3步

当接收到消息“生成太阳花”,如果满足条件,就会在草坪上种植一株太阳花。

当接收到“生成太阳花”消息,将植物角色的造型切换为“太阳花”,显示角色。接下来的内容会重复执行。角色会跟着鼠标移动。如果鼠标按下,并且是在草坪有效范围,那么继续执行下面内容。调用自制积木“设置Y坐标”设置变量“植物的Y坐标”的值,调用自制积木“设置X坐标”设置变量“植物的X坐标”的值。然后将角色移到X坐标为变量“植物的X坐标”,Y坐标为变量“植物的Y坐标”的指定位置。如果没有碰到红色或者“阳光”角色,将该角色移至最前面,克隆“太阳花”角色,隐藏 “植物” 角色,将变量“阳光值”减掉50,停止当前脚本。请注意,“生成太阳花”消息是由前面介绍的“太阳花卡牌”角色广播的。

第4步

当接收到“生成豌豆射手”消息,就会在草坪上种植一株豌豆射手。

当接收到“生成豌豆射手”消息时,将造型切换为“豌豆射手”,显示角色。接下来的内容和前面介绍的接收到“生成太阳花”消息的脚本类似,只是把克隆“太阳花”角色改为克隆“豌豆射手”角色,“阳光值”也从减少50改为减少100。请注意,“生成豌豆射手”消息是由前面介绍的“豌豆射手卡牌”角色广播的。

第5步

这个脚本与第3步和第4步类似,只是接收到“生成坚果”消息后,将造型切换为“坚果”,克隆“坚果”角色,阳光值减少50。

第6步

当接收到消息“生成火爆辣椒”,前面的代码和第3步中的代码类似,只是这次没有克隆角色。因为火爆辣椒的攻击是实时的一次性的,所以我们采用另一种表现方式:广播消息“生成火龙”,播放“火爆辣椒”燃烧的声音,说“我烧”,这次阳光值减少了125。

第7步

当接收到消息“生成樱桃炸弹”,前面的代码和第6步类似,只是这次将广播消息改为将造型切换为“樱桃炸弹爆炸”,然后播放“樱桃炸弹”爆炸的声音,说“我炸”,这次阳光值减少了150。

第8步

当点击绿色旗帜时,将角色大小设置为初始大小的百分之八十。

第9步

当点击绿色旗帜时,隐藏角色,并清除所有列表中的项目。

最后的版本还不错吧~

更多内容请直接查看图书哦~


踩楼送书活动参与方法:


本文下方留言,发表您对习Scratch过程中的经验感想,小编将对留言进行挑选,被采纳的留言将会显示在页面中。


踩楼送书活动获奖须知: 

1、活动期间踩中指定楼层的标准回复将获得《Scratch 3.0少儿游戏趣味编程》一本,共5名中奖者

2、活动结束我们会在本公众号公布中奖楼层的解压密码,并在3个工作日内收集到获奖用户信息后发出(收到奖品的小伙伴欢迎来留言区晒晒。)

3、获奖楼层下载地址(文件解压密码2019年3月19日公布)

百度云链接:

https://pan.baidu.com/s/1VMiQE3wTFeDq8VynuU5aOA 

提取码: fyhg



 

活动时间

活动时间:即日起至2019年3月19日下午4点整

精选书单 点蓝字即可 

 我放弃Python转Go语言的9大理由 | 优秀书籍推荐

 99%的程序员都会收藏的书单,你读过几本?

 你眼中的Linux高手,都应该读过这几本书!

 薪资那么高的Web前端,该看些什么书?

 顶级程序员必备书籍,雷军都点赞的书单!

 推荐 | 怎样才能自学好Java?(内附攻略&书单)

 吐血推荐 | Android开发从入门到进阶的十本好书

 安全类书籍天团配置,给你最好的安全指导!

 微信小程序 + 公众号开发运营看这一篇就够了!!!

 荐书 | 您有一份JavaScript书单待签收

更多好书请关注脚本之家微店

小贴士

返回 上一级 搜索“Java 女程序员 大数据 留言送书 运维 算法 Chrome 黑客 Python JavaScript 人工智能 女朋友 MySQL 书籍 等关键词获取相关文章推荐。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存