送书 | 编程真好玩,我编写了一个植物大战僵尸
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大理由 | 优秀书籍推荐
更多好书请关注脚本之家微店
返回 上一级 搜索“Java 女程序员 大数据 留言送书 运维 算法 Chrome 黑客 Python JavaScript 人工智能 女朋友 MySQL 书籍 等关键词获取相关文章推荐。