最好看的新闻,最实用的信息
06月16日 10.8°C-13.4°C
澳元 : 人民币=4.79
阳光海岸
今日澳洲app下载
登录 注册

做游戏学scratch编程:手把手教你编写飞机大战游戏

2017-03-17 来源: 四眼长腿奶爸 原文链接 评论0条

大家好,我是四眼长腿奶爸,专注机器人编程(乐高EV3,Arduino),少儿启蒙编程(Scratch,Python)!喜欢我的作品请点击右上方的 “ + 关注 ” 订阅我的头条号吧!

上一篇文章着重讲述了迷宫游戏的简单实现思路和脚本编写(参照文章做游戏学编程:制作迷宫游戏),今天,将和大家一同分析《飞机大战》游戏的设计思路,一步步地完成scratch脚本的编写。(scratch界面及操作参照文章《零基础学少儿编程:2.scratch界面介绍及操作》)

本系列课程旨在培养编程思维,建立编程兴趣掌握设计思路,scratch只是编程思路的表现形式,如果有能力的朋友可以用熟悉的编程方式或者语言编写,至于算法之类的高级操作会在以后的机器人课程中结合传感器一起讲解

飞机大战

老规矩,首先我们一起来看一下《飞机大战》的游戏界面和运行效果。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 1

游戏界面

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 2

游戏运行效果

游戏素材&思路分析

游戏素材:

两个舞台背景(一个游戏背景、一个游戏结束背景)、一个飞机、若干个子弹、若干个蝙蝠、得分变量。

思路分析:

1、游戏开始后,舞台背景切换为游戏背景;当飞机碰到任意一个蝙蝠后,舞台背景切换成游戏结束背景,游戏结束。

2、通过上下左右方向键控制飞机在游戏中的运动,飞机在游戏中的运动相当于在某一方向移动一定的距离。

3、当按下空格键时,飞机发射出子弹,子弹沿着垂直方向重复执行向上移动一定的距离的操作,直到碰到蝙蝠或者到达舞台的顶端。

4、每次按下空格键都要发射一个子弹,每次创建新的子弹都需要设置它的外观和脚本,这样会比较麻烦,简化一下,设置一个模板子弹,事先定义好它的外观和脚本,将它隐藏;每次发射子弹时,克隆一个外观、脚本和模板子弹一样的子弹,移动到飞机当前位置的上方(与飞机的x坐标是一致的,y坐标在飞机y坐标的基础上增加一定的距离)显示,然后克隆的子弹就会按照设定好的脚本(重复执行向上移动,碰到舞台顶端边缘或者蝙蝠后消失)执行。

5、同理,我们也定义一个模板蝙蝠,初始的位置y坐标让它在舞台顶端边缘,x坐标的位置随机产生,然后设定它的行为,一旦显示就重复执行向下运动,然后,每隔一段时间,就克隆一个蝙蝠,让它出现在顶端的随机位置,下落。

6、当任意一个子弹碰到蝙蝠的时候,得分加1,蝙蝠消失。

7、当任意一个蝙蝠碰到飞机的时候,游戏结束,切换至游戏结束界面。

实现操作&脚本编写

1、设置舞台的背景&初始脚本

1)游戏主界面的背景从背景库中选择(背景库-》主题-》太空-》stars)。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 3

选择游戏主界面背景

2)选择舞台默认背景的背景1,修改成游戏结束背景。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 4

绘制游戏结束界面

3)设置舞台的初始脚本,游戏开始时,设置舞台背景为游戏背景(stars)。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 5

设置游戏开始时的游戏界面

2、新增飞机角色&初始脚本

1)默认角色小猫本游戏中用不到,在角色库中点击鼠标右键,点击删除即可。

2)游戏中的主角飞机从角色库中选择(角色库-》分类-》运输工具-》Spaceship),缩小至合适大小。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 6

增加飞机角色

3)设置飞机的动作脚本,按下方向键(上、下、左、右)时,飞机分别向上、向下、向左、向右移动一定的距离。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 7

设置飞机的动作脚本

4)脚本添加完毕,点击绿色小旗运行看一下效果吧!

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 8

按下方向键飞机的运行效果

3、新增模板子弹角色&初始脚本

1)游戏中的模板子弹角色从角色库中选择(角色库-》分类-》物品-》Ball),缩小至合适大小。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 9

增加模板子弹角色

2)设置模板子弹的初始脚本,默认位置在(0,0),并将其隐藏,等需要子弹的时候,再把它显示出来。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 10

设置模板子弹的初始脚本

4、新增模板蝙蝠角色&初始脚本

1)游戏中的模板蝙蝠角色从角色库中选择(角色库-》分类-》动物-》Bat1),缩小至合适大小。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 11

增加模板蝙蝠角色

2)设置模板蝙蝠的初始脚本,默认位置在(0,180),并将其隐藏,等需要蝙蝠的时候,再把它显示出来。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 12

设置模板蝙蝠的初始脚本

5、飞机发射子弹的脚本

1)上面讲到过,飞机发射子弹不是新创建一个子弹,而是克隆一个已存在模板子弹的外观和脚本并显示在游戏界面中;如果每次按下空格键都克隆一个子弹,子弹的速度很快,通过等待的指令来控制飞机发出子弹的频率。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 13

飞机按下空格键发出子弹

2)点击绿色小旗运行,按下空格键飞机没有任何反应,为什么?因为飞机虽然克隆了子弹,但是克隆子弹是隐藏并且位置是固定不变的,飞机无法设置子弹的动作指令,子弹通过设置克隆子弹来配置其动作指令:子弹移动到飞机的上方显示(x坐标与飞机的x坐标一样,y坐标是飞机的y坐标加一定的距离),然后重复向上移动直到到达顶端边缘(y坐标180)时消失(隐藏并删除克隆的子弹)。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 14

飞机发射子弹后,子弹的动作脚本

3)点击绿色小旗,运行看一下效果:

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 15

飞机发射子弹效果

6、蝙蝠随机出现的脚本

1)和子弹一样通过克隆蝙蝠来生成一个新的蝙蝠,通过设置克隆蝙蝠的动作指令来完成操作:游戏开始后,每隔一定的时间,生成一个克隆蝙蝠,克隆蝙蝠移动到顶端的随机位置(x坐标是-240和240中间的任意一个随机数,y坐标是180)显示,重复执行向下移动,直到碰到底端的边缘(y坐标是-180)消失(隐藏并删除克隆蝙蝠)。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 16

克隆蝙蝠垂直下落脚本

2)点击绿色小旗运行,看一下效果:

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 17

蝙蝠垂直下落脚本

7、蝙蝠碰到子弹&蝙蝠碰到飞机的脚本

1)不管蝙蝠怎么移动,也不管飞机什么时候发射子弹,只要蝙蝠在移动过程中碰到子弹,证明子弹已经打中蝙蝠,蝙蝠就要消失。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 18

蝙蝠碰到子弹动作指令

2)不管蝙蝠怎么移动,也不管飞机怎么移动,只要飞机在移动过程中碰到蝙蝠,证明飞机已经被打中,舞台就要切换至游戏结束背景,因为飞机不能直接控制舞台,之前也讲过,飞机在被打中时发送一则消息告诉舞台自己被打中,舞台在接收到消息后切换自己的背景,然后停止游戏。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 19

飞机碰到蝙蝠发送消息给舞台

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 20

舞台接收到飞机被打中的消息切换至游戏结束背景

3)点击绿色小旗运行,看一下效果:

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 21

蝙蝠被打中,飞机被打中效果

8、记录玩家得分

1)新增变量,得分记录玩家共打中多少个蝙蝠。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 22

新增变量记录玩家得分

2)得分变量在游戏开始时清零,在舞台脚本中增加将得分设定为0。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 23

游戏开始将得分设定为0

3)子弹打中蝙蝠时得分加1,在蝙蝠的脚本中增加如果碰到子弹将得分加1。

做游戏学scratch编程:手把手教你编写飞机大战游戏 - 24

子弹打中蝙蝠,得分加1

至此,飞机大战的脚本都已编写完毕,大家动手试一试吧!有能力的朋友们可以想一想,如何随着时间的推移,蝙蝠出现的频率和垂直下落的速度越来越快呢?

做游戏学编程系列课程中的所有文字及配图均为四眼长腿奶爸原创,如需转载请联系作者(微信号:alickfang),未经许可,不得转载,违者必究!

转载声明:本文为转载发布,仅代表原作者或原平台态度,不代表我方观点。今日澳洲仅提供信息发布平台,文章或有适当删改。对转载有异议和删稿要求的原著方,可联络content@sydneytoday.com。
今日评论 网友评论仅供其表达个人看法,并不表明网站立场。
最新评论(0)
暂无评论


Copyright Media Today Group Pty Ltd.隐私条款联系我们商务合作加入我们

电话: (02) 8999 8797

联系邮箱: info@sydneytoday.com 商业合作: business@sydneytoday.com网站地图

法律顾问:AHL法律 – 澳洲最大华人律师行新闻爆料:news@sydneytoday.com

友情链接: 华人找房 到家 今日支付Umall今日优选