1.简介
使用工具
微信小游戏制作工具
任务
先完成微信小游戏制作工具上的新手指南,然后在得到的初代飞机大战游戏上升级
2.初代飞机大战实现
初代飞机大战实现了一些最基本的逻辑,比如背景设置,战机能随意拖拽、发射子弹,敌机能随机出现等等。
以下将介绍各种功能的实现方法
背景设置
在资源管理器中点击添加素材,并选择喜欢的背景,导入后就自动设为背景啦
战机能随意拖拽
从素材库中添加战机后,选中战机,点击添加事件,选择场景启动时,从控制板块中选出设置自己能向任意方向拖拽的模块
战机能发射子弹
首先要从素材库中添加子弹,选中子弹,添加下图逻辑。此处用到了逻辑板块中的重复执行和等待模块
这里运用到了克隆体,因为子弹是不断发出的,所以我们要使用克隆体,并对其添加以下逻辑。
点击添加事件,选择当克隆体启动时模块。
以下逻辑组件所代表的意思为,每次克隆出新的子弹,先移到战机的位置,保证子弹是从战机中发射出去的,然后重复执行Y坐标自增,是模拟子弹发射出去的运动轨迹。
随机出现的敌机
敌机的逻辑和子弹基本相似,但是随机出现时敌机特有的,以下是随机出现的逻辑。
Y=700是上边界,所以只需先将敌机移动到随机一个位置,再让敌机从Y=900(即上边界之上)出现,就可以模拟敌机随机出现啦。
其他功能
当然,一些诸如子弹碰到敌机,子弹和敌机都会消失的逻辑是必需的,逻辑如下(只展示敌机的)
项目展示
至此,一个简单版的飞机大战就做好啦
3.升级版飞机大战
很显然,简单版飞机大战还有很多应有的逻辑是没有实现的,比如得分计算、战机碰到敌机会扣血等等,升级版飞机大战正是要添加这些功能。
添加游戏开始页和结束页
点击新建场景,建立开始页和结束页
并且新建立两个通知,用于场景间切换,并将之前用的“当场景启动时”模块替换为“当收到通知”模块(例子如下)
然后在开始页和结束页设置两个按钮,用于场景跳转
开始页
结束页
注意:这里有一个小坑,为什么开始页和结束页使用的模块不一样呢,如果结束页同样使用“切换场景到开始页”会怎么样?
出现上述问题,就是因为这样切换,游戏是没有重启的,之前的记录会被保存,这样显然不符合这个游戏的实现逻辑。
得分计算
添加一个全局变量“得分”
从素材库中添加数字并选中,为该精灵定义以下逻辑
战机生命值
战机将有3点生命,这样就可以玩久一点(手残党福音)
先添加一个全局变量“战机生命值”
在素材库中找到“生命”并添加,一共添加三个,并放到屏幕中
此外,为三个爱心都添加上第二种造型,表示扣血(下图第二个造型)
并添加如下逻辑,实现造型变换(例子为第三个生命值的逻辑)
战机碰到敌机会扣血,并有无敌时间
战机碰到敌机后,战机生命值减1
碰到敌机后,战机将闪烁并进入无敌状态,重新登场
其他
在简单版飞机大战中,对于子弹和敌机的克隆体是没有做边界处理的,即子弹超出上边界、敌机超出下边界是不会删除的。游戏进行长时间后,会导致克隆体过多。
所以,需添加一下逻辑,进行边界处理
子弹
敌机
项目展示
4.总结
这次设计飞机大战是我在游戏编程道路上迈出的第一步,这款游戏实现逻辑虽然简单,但是在某些bug上还是花了不少时间思考,这或许就是游戏编程的魅力吧。