用微信小游戏制作工具制作飞机大战游戏

目标

使用微信小游戏制作工具制作一个可计分,有游戏开始界面和结算界面的飞机大战游戏。

制作平台介绍

网址https://gamemaker.weixin.qq.com/,可以用微信或QQ登录账号直接使用。

类似scratch的可视化编程形式,无需代码,编程以积木拼接的形式进行。

优点容易上手,对计算机编程语言零基础的初学者也可以在此平台制作游戏,且各个代码功能很明确,学习和制作成本低;不足是与基础编程语言相比自由度较低,且代码处理逻辑也和常用的编程语言有些许不同,在一些方面对于习惯使用基础编程语言的同学来说略微反直觉,但总体来说仍是一个便捷、易于操作的制作平台。

制作步骤

导入主要素材

在起始页的右上角点击新建作品,选择空项目,新建项目

右键点击左边精灵栏的背景,选择编辑背景

选择从素材库添加,可使用平台素材库自带的背景,或上传自己的背景

选好背景后,若想让背景持续滚动,可点开资源属性栏的管理行为,选择循环滚动

 

选择添加素材,加入战机、子弹、敌机这几个游戏主体素材作为设置逻辑的对象,该平台称之为精灵。

添加基本逻辑

设置战机初始状态:游戏开始时将自己移动到初始位置,以免游戏重新开始游戏时战机仍停留在上次游戏结束时的位置。设置自己任意方向拖拽,以便玩家可以操控战机。(PS:绿框要在顶端的添加事件中选择)

设置敌机初始状态:游戏开始后每间隔一秒克隆一台敌机,随机出现在Y坐标为700的位置,并不断往屏幕下方移动,即重复执行Y坐标减少的动作。

设置子弹初始状态:子弹由玩家所控制的战机自动发射,因此设置游戏开始后每间隔0.3秒克隆一个子弹(间隔时间可调整),移动到战机的相对坐标,不断往屏幕上方移动,即重复执行Y坐标增加动作,以达到发射子弹的效果。

设置子弹碰到敌机的逻辑:子弹碰到敌机后消失,因此逻辑为删除此克隆体。

设置敌机碰到子弹的逻辑:播放声音和动画(均可在素材库找到),等待0.2秒动画播完后删除克隆体(若不设置等待0.2秒则会立刻删除敌机,无法播放动画)

之后需要将敌机和子弹拖到屏幕外:游戏中需要用到的敌机和子弹全是克隆体,本体的敌机和子弹仅仅起到一个造型上的作用,不会参与游戏也不会消失,因此需要拖到屏幕外,以免挡住视线影响游戏体验。最好拖远一点,因为有些人的手机比较长。

完成以上步骤后,可以得到如下演示结果,此时的游戏可以完成最基本的射击敌机功能,但是现在的战机处于无敌状态,没有战败条件,可玩性不高,需要继续补全完善游戏。

设置战败条件、添加场景切换

我们想要得到的效果是,当玩家控制的战机战败,会先跳转到结束界面片刻,再跳转初始界面,点击初始界面的开始按钮后重新开始游戏。因此在设置战败条件之前,需要添加初始界面场景和结束界面场景,以便设置战败逻辑时思路更清晰。

增加场景:复制原有场景,将初始界面和结束界面的子弹和敌机删去,战机的事件逻辑也删去,仅作装饰。在初始界面添加标题和开始按键,并设为主场景,即小程序打开最初始的界面;在结束界面添加GameOver字符。(这个布局可以自定义,这里仅作参考)

设置初始界面背景逻辑:循环播放背景音乐。(不要在其他场景添加,会干扰)

设置结束界面背景逻辑:结束界面展示2秒后切换回初始界面。

设置初始界面的开始按钮逻辑:点击按钮切换到游戏进行界面。

设置战败条件:设置战败条件为战机碰到敌机或敌机碰到下边缘。

回到游戏进行场景,给战机添加以下逻辑:当自己碰到所有敌机,播放声音,并通知所有人游戏结束了(通知需要自行添加,可设置为其他命名)

敌机添加以下逻辑:同理,当自己碰到下边缘,播放声音,并通知所有人游戏结束了。

子弹添加如下逻辑:当收到游戏结束的通知时,清除所有克隆体,以便在游戏结束后清除游戏界面,不然下次游戏开始时还有上次游戏结束时粘在屏幕上的敌机和子弹。

同理,回到敌机界面:前面的内容一致,但添加一个等待0.03秒后切换结束页面的代码。

(为什么需要等待0.03秒:因为每个场景切换到后台之后就不会执行该场景的事件,这意味着如果一旦收到游戏结束的通知后不进行等待就切换场景,该场景上的其他精灵就收不到游戏结束的通知,无法进行清除界面的效果。)

完成以上内容后,小游戏可以达到如下效果,此时小游戏已经有战败条件,也可以切换界面并重新开始游戏,已经具备一定的可玩性,可以发布,但如果还想进阶可以继续完善,添加计分器和分数结算。

计分器和细节完善

从素材库添加一组数字素材,增加一个变量命名为得分,添加一个通知为得分了。

敌机碰到子弹的事件框里添加一个通知所有数码数字得分的代码,放在删除克隆体前,其他不变,表示每击中一个敌机就加一分。(若放在等待0.2秒前,会出现子弹射中正在播爆炸动画的敌机仍然加分的情况)

向游戏界面添加一个计分器,添加以下逻辑:场景启动时得分设置为0,且当场景启动后实时将数字的值改为得分,当收到得分通知时,将变量得分增加1。

结束界面也添加一组数字作为结算,设置其逻辑为场景启动时将自己的值修改为游戏得分。

至此计时器也完成了,但仍有可以完善的缺陷。本人做到这一步将游戏分享给朋友试玩,朋友反映有些战机出现得太边缘,太难打,游戏体验有点受影响。

为解决这一问题,可以在战机作为克隆体启动的事件框内添加:如果战机出现得太右了(大于293)则将X坐标减少100的代码,同理,出现得太左则增加100坐标,较好地解决的这一问题。

现在的小游戏功能较为完善,添加了计分器和分数结算。还可以在此基础上添加一些道具丰富游戏玩法,有兴趣的朋友们可以尝试一下。

小游戏分享

选择预览&分享,打开可以看到小程序码,微信扫一扫即可用游玩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值