微信小游戏开发实战14-闯关模式的实现

简介: 本文主要内容是介绍精致1010闯关模式的设计和实现思路。如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。

本文主要内容是介绍精致1010闯关模式的设计和实现思路。

如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。



最新版本的精致1010,新增了一个全新的游戏模式:闯关模式。今天就跟大家聊一下它的制作思路和大致的方法。


之所以制作这样的一个模式,起初的想法是这样的:原来的游戏模式一局的时间比较长,以我自己为例,进行一次游戏的时间至少要在 10 分钟以上,如果认真仔细一点儿,想玩到几千分的话,那么可能需要半个小时以上。很明显这样的单次游戏时长对于一个小游戏来讲有些太长了,但是游戏模式已经是这样了,如果想要缩短单次游戏之间,在现有的模式下只能通过增加游戏难度这种方式,但这并不是一种好的方式。


那么如何能把这样一个简单的消除游戏的单次游戏时间缩短到几分钟之内呢?答案就是创建一个新的游戏模式:关卡模式。每一个关卡玩家只需要用几分钟的时间即可完成,要么闯关成功,要么闯关失败。


基于上述的原因,我为游戏新增了闯关模式,原有的游戏模式被称作是经典模式,来满足两种不同场景下的需求,闯关模式可以在几分钟的碎片时间里玩一下,而经典模式可以用来打发一大段的无聊时间。


闯关模式其实也并不复杂,当前只增加了障碍玩法。只是通过修改了一下游戏目标,两种游戏模式就变得迥然不同了。


  • 经典模式下的游戏目标是尽可能多的进行消除从而获得更高的分数。

  • 闯关模式下的游戏目标是尽快的消除游戏中的障碍从而完成关卡挑战。


在经典模式中玩家想要获得更高的分数,需要尽可能长时间的活下去,而闯关模式中,玩家会总是想尽快的搞定这个关卡,去挑战下一个关卡。


可以看到我们只需要调整玩家在游戏中的目标,就可以达到两种差别非常大的行为结果,因此当你在设计游戏玩法时,不妨试着将游戏中的目标切换一下,说不定能带来一些意外的惊喜。


接下来是闯关模式实现的大致思路。


闯关模式与经典模式最大的不同在于游戏结束判断条件的不同, 在经典模式中,游戏结束的判断条件是检查网格中是否还有位置能够放置剩余的任何一个形状,如果没有的话则游戏结束(有关于游戏结束判断的具体实现方式,可以参考一下这篇文章)。在闯关模式中,游戏结束的判断条件分为两种,一种跟经典模式一样,作为闯关失败的条件,另一种是需要去判断游戏中障碍方块的数量,如果没有障碍方块了,则游戏过关。


在实现上只需要使用一个全局变量来记录障碍方块的数量,每当消除一个障碍方块,即将全局障碍方块的数量减 1,数量为 0 时则游戏过关。


闯关模式中,工作量最大的地方可能就是关卡设计了,起初我想到的是使用随机的方式去生成关卡,为此我制作了一个游戏原型进行测试,得出的结论是虽然随机的方式可以让一个关卡在每次进入时都是不同的,但是由于无法控制障碍块的出现位置,也就无法控制当前关卡的难度,因此随机生成关卡的方案就被否决了。最终我使用的是手动的设计关卡,每一个关卡都人工设计,以此来保证一个可控的难度曲线,让关卡的难度可以平缓的上升。


实现闯关模式最大的关键点在于数据的设置和展现。即如何将一个关卡中的障碍数据在网格中展示出来。

如图是一个填满了数据的网格,绿色填充为 1 的方格表示关卡中的障碍块,白色的填充 0 的方格表示的空位置。我们可以通过这样设置网格中的数据来进行关卡的设计,如果一个障碍块需要消除 2 次才能移除,就直接把障碍块的数字设置为 2 即可。在设计完关卡后,只需要将网格的数据导出来,然后在游戏中加载这些关卡数据进行显示就行了。


一个关卡的数据就像这样:

0000000000000000000000021120000001001000000100100000010010000001001000000211200000000000000000000000


这是一个长度为 100 的字符串,每一个数字代表的是一个方格中的内容,0 表示空,大于 0 的表示不同的障碍块,从网格的左下方开始,依次去读取每一个数字,然后根据数字设置网格的内容就可以将一个关卡展现出来了。


可以看出来这实现起来其实并不复杂,真正复杂的地方在于如何去进行关卡设计,并把设计好的关卡变成这个长度为 100 的字符串,总不至于手动的去一个一个的设置数字吧!


为此,我专门制作了一个关卡编辑器,来处理这个繁琐的事情。



在编辑完关卡后,将所有的数据导出到一个csv文件中。



微信小游戏制作工具支持导入csv文件,所以很容易就能够将关卡的数据导入到游戏制作工具中,这里我使用了列表来存储游戏的关卡数据。



最后,看一下关卡模式下的效果。

进入游戏后,读取对应关卡的数据,然后根据数据显示当前关卡的障碍块。


手动的关卡设计,让我可以制作很多有意思的造型,例如这样的:


在制作完关卡模式后,也让我有了进一步的想法:能否将关卡编辑器做到游戏里呢?这样玩家就可以自己DIY关卡了,甚至可以利用微信的社交属性,将自己设计的关卡分享给朋友玩。


这将是这个小游戏下一步的方向。我会继续进行探索,并与大家分享。


欢迎大家点击下方小游戏卡片,前去尝试精致1010中的闯关模式,有任何的想法或者建议欢迎留言交流。

精致1010

一个会不停成长的小游戏


如果你对游戏开发感兴趣,欢迎关注我的公众号,如果你有对游戏开发感兴趣的朋友,也欢迎把这个系列文章推荐给他。

相关文章
|
14天前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
208 7
|
14天前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
275 1
|
20天前
|
数据可视化 前端开发 小程序
5G时代-探索微信小游戏
5G时代-探索微信小游戏
18 2
5G时代-探索微信小游戏
|
18天前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
105 1
|
20天前
|
缓存 数据可视化 Serverless
微信小游戏 案例一 像素飞机
微信小游戏 案例一 像素飞机
16 2
|
23天前
|
小程序 前端开发 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【10月更文挑战第3天】随着移动互联网的发展,微信小程序凭借便捷的用户体验和强大的社交传播能力,成为企业拓展业务的新渠道。本文探讨了小程序全栈开发中的身份认证与授权机制,包括手机号码验证、微信登录、第三方登录及角色权限控制等方法,并强调了安全性、用户体验和合规性的重要性,帮助开发者更好地理解和应用这一关键技术。
40 5
|
18天前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
272 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
9天前
|
存储 小程序 安全
微信的开发管理都需要配置什么?
【10月更文挑战第17天】微信的开发管理都需要配置什么?
21 0
|
14天前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
155 0
|
18天前
|
小程序
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
227 0