这是微信小游戏开发实战系列的第14篇。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0000000000000000000000021120000001001000000100100000010010000001001000000211200000000000000000000000

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

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

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

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

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

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

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

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

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


我是会做游戏也会教你做游戏的小蚂蚁,欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发系列原创教程资料。也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。

微信小游戏开发实战教程14-闯关模式的实现相关推荐

  1. 微信小游戏开发实战教程15-关卡编辑器的制作以及关卡分享功能的实现

    微信小游戏开发实战系列的第15篇. 本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏&q ...

  2. 微信小游戏开发实战教程13-随机生成形状功能的实现

    微信小游戏开发实战系列的第13篇. 本节内容包括:通过使用列表来实现可以设置权重的随机功能,以及游戏中的随机生成形状功能的具体实现. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游 ...

  3. 微信小游戏开发实战教程8-消除处理

    这是小蚂蚁游戏开发公众号原创的第42篇,微信小游戏开发实战系列的第8篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容. 本篇主要内容包括如何对网格上满足消除条件的方块进行消除处理. 如果 ...

  4. 微信小游戏开发实战教程11-使用本地缓存

    这是微信小游戏开发实战系列的第11篇. 本节主要内容:使用本地缓存来记录玩家的设置以及各种类型数据的本地缓存和读取操作. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏" ...

  5. 微信小游戏开发实战教程系列开启

    **这是小蚂蚁游戏开发公众号原创的第35篇. 在写完了"人人都能做游戏"的新手系列教程后,我收到了不少反馈.有人告诉我,因为看了我的系列教程做出了自己人生的第一个小游戏.也有人告诉 ...

  6. 微信小游戏开发实战教程12-广告的开通和接入

    微信小游戏开发实战系列的第12篇, 本节内容主要包括:如何尽快的开通广告功能,以及如何将广告接入到微信小游戏中. 如果你没有任何的游戏开发经验,欢迎阅读我的"人人都能做游戏"系列教 ...

  7. 微信小游戏开发实战教程2-使用表格处理数据

    **这是小蚂蚁游戏开发公众号原创的第36篇. 本篇内容包括微信小游戏开发工具中的表格的使用.重点学习表格中的数据的设置,遍历和查找操作,以及如何使用"调试场景"来验证游戏中的逻辑是 ...

  8. 微信小游戏开发实战教程3-绘制网格

    **这是小蚂蚁游戏开发公众号原创的第38篇.本篇主要内容包括使用微信小游戏开发工具动态的绘制一个网格,并通过使用变量来控制最终生成的网格的效果. 如果你没有任何的游戏开发经验,欢迎阅读我的" ...

  9. 微信小游戏开发新手教程14-整合到一起,做出你的小游戏

    终于到了真正动手做游戏的时刻,在这一节里,我会带你从头开始将我们的"太空保卫者"按照设计方案制作出来.这一节里的内容会非常的多,一遍消化不了,可以多读几遍.别着急,慢慢来. 首先, ...

最新文章

  1. OpenGL实践系列之开篇: NV21 vs NV12
  2. onnx onnxruntime 预测
  3. java 2维数据便利_计算机等级考试二级java数组辅导
  4. python-mysql超简单银行转账
  5. Redis之Redis的事务
  6. MySQL 自定义函数设置执行时间_mysql自定义函数计算时间段内的工作日(支持跨年)...
  7. Spring-IOC之BeanDefinitionHolder
  8. 设计模式学习五、代理模式
  9. 解决ASP.NET2.0和1.1在同一台电脑上不能并行的问题(转)
  10. 【已解决】戴尔笔记本电脑的卡顿问题.
  11. 权限管理系统,可以这么设计
  12. 2016 server win 假死_Windows10出现假死的几种表现形式及对应解决方案
  13. Android本地默认IP
  14. matlab画极坐标心形线,matlab画心形线
  15. 【igraph实例】Commmunity 识别
  16. 京东2019校园招聘笔试+面试(算法工程师岗位)
  17. 计算机修复无法启动怎么还原,电脑无法开机时如何恢复系统?
  18. 简单BroadcastRecevier
  19. Codeforces Round #705 (Div. 2) A-D
  20. 拜登新任命了白宫科学顾问团队,都有哪些大佬?

热门文章

  1. Win7开机按F8无法进入安全模式怎么办?
  2. 小程序开发--开发者工具的插件推荐
  3. 2009年6月6日大学散伙饭--maybe大学最后一记
  4. 双击桌面计算机打不开,双击我的电脑打不开
  5. 2008 server sql 数据库引擎安装失败;安装2008sql server时,提示sql server 复制、数据库引擎服务、Reporting Services、全文搜索等失败。W10
  6. python爬取网站教学视频_零基础Python爬取网页文章和图片详细教学(内附源码、教学视频)...
  7. 第八课:不一样的链表 linux链表设计哲学 5星级教程
  8. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java力高灯饰线上交易平台4d59n
  9. python3.7.3安装失败_win7无法安装python怎么办_Win7安装不上python3如何解决-win7之家...
  10. 入门Linux系统编程--网络编程