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

简介: **微信小游戏开发实战系列的第15篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容。本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享。


**微信小游戏开发实战系列的第15篇,点击上方的#微信小游戏开发实战话题可以查看本系列的所有内容。

本节主要内容有游戏中的关卡编辑器的实现思路以及如何利用分享功能将自己制作的关卡与好友分享。

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


上周在制作完闯关模式后,我有了在游戏中做一个关卡编辑器的想法,让玩家可以在游戏中制作自己的关卡进行挑战,甚至可以将自己制作的关卡与朋友进行分享。


原有的关卡编辑器是使用Unity做的,因为可以方便的进行文件的读取和写入,可以将设计好的关卡数据写入到文件中,然后在将文件中的数据导入到微信小游戏开发工具中。


640.gif


现在我将这个关卡编辑做到了小游戏中。


640.gif

关卡编辑器功能已经更新到最新版的精致1010中了,欢迎大家前去体验。


这篇文章主要分享一下关卡编辑器的制作思路,以及如何利用分享组件将自己制作的关卡分享给朋友玩。


上一节中我们讲过,关卡模式中最重要的数据抽象就是将这个10 x 10 的网格转化成一个长度为 100 的字符串,像是这样:


0000000300200000000000021120000001001000000100100000010010000001001000000211200000000000000000000000


从网格的左下角开始,一行一行的向上遍历,这一大长串数字中的每一个数字就表示了一个方格中的状态,0 表示当前方格是空的,1 表示当前方格中的障碍需要消除 1 次清除,3 表示当前方格中的障碍需要消除 3 次才能清除。


当前最大的障碍数设置为 5 ,因为据测试需要消除 5 次才能清除的障碍已经够难了。

实现这样一个的关卡编辑器我们需要借助一个表格变量,将其设置为 10 行 10 列。


640.png


每一个表格变量中的数字就对应着关卡编辑器中的一个格子的状态。


接着来看一下方块的逻辑。


640.png


并不复杂,每点击一次,就将自己的障碍次数增加 1 , 超过 5 的话就重置为 0,然后将障碍次数记录在表格中的对应位置,最后再将表格数据进行本地缓存,使用本地缓存是为了记录当前关卡的编辑,以便于在下次打开游戏时能够恢复之前编辑的状态。(格数据的本地缓存和读取操作,可以参考一下这篇文章,详细讲解了各种类型数据的本地缓存和读取的方法。)


当玩家想要试玩自己制作的关卡时,我们就直接使用这个表格中的内容对关卡进行设置即可。


640.png


那么如何将自己设计的关卡分享给朋友玩呢?


首先我们需要先了解几块与分享有关的积木块。


640.png


与分享有关的积木块都在侧边栏的“小游戏”中,前两个积木块分别为设置标题和图片,其中分享图片积木块允许你分享从小程序后台上传的图片。


640.png


如图,在小游戏后台可以配置自定义转发图片,这里可以上传自己想要分享的图片,审核通过后,点击图片地址,能够获取到一个图片的链接,把链接放到“设置分享图片”的积木块中,就可以设置想要分享的图片了。


这里我们需要重点了解第 3 块积木,即“设置分享参数”,我们需要利用它来在分享中增加一些数据,比如说我们的自制关卡的数据。


参数传递的格式是“名字=值”,等号前方是参数的名字,等号后是参数的值,对于精致1010中的关卡数据来讲,传递的参数就是这样的:


diy=0000000300200000000000021120000001001000000100100000010010000001001000000211200000000000000000000000


参数的名字叫“diy”,参数的值为一个长度为 100 的关卡数据字符串。


来看一下分享的实现。


640.png


将编辑的关卡数据转换成字符串,然后设置到分享参数中,分享出去即可。


当朋友通过分享的链接打开进入游戏时,通过判断和分析分享参数,就可以去实现一些逻辑和功能了。


在小游戏栏的最下方有一个“获取分享参数”的积木,通过它就可以获取到分享的参数了。


640.png


在进入到游戏的首场景启动时,进行分享参数的判断和设置。


640.png


判断是否有分享参数,如果有并且满足要求的话,就将关卡数据的字符串设置到关卡编辑的表格中。如果没有分享参数的话,就是正常进入游戏。


这里注意一下,“获取分享参数”积木块获取到的参数格式是这样的:



{ diy:10010212111 }


很显然这是一个对象的数据格式,所以这里我们只需要使用“获取对象的值”这个积木块提取出参数中对应的值即可。


8f1b833e95af64399b7052e78305cad9.png


当有分享参数时,这里我使用了一个提示。


6b71e14e3f86789ba9430e3ac537cd37.png


当点击挑战时,我们要做就是打开关卡场景,然后根据编辑表格中的数据设置关卡的障碍即可,这样朋友就能够点击分享链接试玩你制作的游戏关卡了。


这篇文章就到这里了,主要是分享了一些实现的思路,如果能够给你带来一些启发那是再好不过的了。


欢迎试玩小游戏“精致1010”,一个会不停开发和成长的小游戏,点击下方小程序卡片,试着挑战一下我制作的关卡吧!

相关文章
|
5天前
|
存储 安全 数据安全/隐私保护
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
43 0
|
2月前
|
移动开发 前端开发 JavaScript
基于 HTML5 和 Canvas 开发的在线图片编辑器
基于 HTML5 和 Canvas 开发的在线图片编辑器
46 0
|
28天前
|
人工智能 搜索推荐 安全
从零到一:微信机器人开发的实战心得
从零到一:微信机器人开发的实战心得
87 2
|
2月前
|
小程序 安全 搜索推荐
【微信小程序开发实战项目】——个人中心页面的制作
本文介绍了如何设计和实现一个网上花店的微信小程序,包括个人中心、我的订单和我的地址等功能模块。个人中心让用户能够查看订单历史、管理地址和与客服互动。代码示例展示了`own.wxml`、`own.wxss`和`own.js`文件,用于构建个人中心界面,包括用户信息、订单链接、收藏、地址、客服和版本信息。我的订单部分展示了订单详情,包括商品图片、名称、销量、价格和订单状态,用户可以查看和管理订单。我的地址功能允许用户输入和编辑收货信息,包括联系人、性别、电话、城市和详细地址。每个功能模块都附有相应的WXML和WXSS代码,以及简洁的样式设计。
78 0
【微信小程序开发实战项目】——个人中心页面的制作
|
2月前
|
小程序 开发者
uniapp实战 —— 开发微信小程序的调试技巧
uniapp实战 —— 开发微信小程序的调试技巧
134 1
|
2月前
|
小程序
【微信小程序-原生开发】富文本编辑器 editor 的使用教程
【微信小程序-原生开发】富文本编辑器 editor 的使用教程
395 0
【微信小程序-原生开发】富文本编辑器 editor 的使用教程
|
2月前
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
164 0
|
2月前
|
小程序
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
101 0
|
2月前
|
小程序 前端开发
【微信小程序-原生开发】TDesign 实战模板——聊天气泡
【微信小程序-原生开发】TDesign 实战模板——聊天气泡
30 0
|
2月前
|
小程序
【微信小程序-原生开发】TDesign 实战模板——带性别图标的头像
【微信小程序-原生开发】TDesign 实战模板——带性别图标的头像
44 0

热门文章

最新文章

下一篇
云函数