下载 App

【星火进阶教程02-构建完善的代码框架和云存档读取】

修改于2023/11/171838 浏览主题教程

一、前言

对于写过一些代码的兄弟来说,在准备写一个玩法和功能都足够充分的游戏上,如何构建一套稳定、强悍、易读的代码框架显得十分重要。下面从几个方面,就如果搭建一个功能模块进行一些深入浅出的探讨。
蓝色字体代表重要的内容,需要仔细思考和理解,同时一般描述文字在图标上面。

二、构建流程

我们以建立一张地图闯关为例,搭建一个功能模块。

1.新建文件夹

TapTap
总结构图
这一步十分的关键,它规划了你怎么如何按模块化的思维来构建一个功能模块。
我们不应该把事件、触发、类 等等数据统一放别的一个什么地方,而是应该按模块化思维放在一个文件夹下,代表这个文件夹下的事件、触发和类都是干的这个功能;这样当你的项目足够庞大的时候,你才可以方便的进行单个功能的调整、bug修复和新内容增加。
同时,一个类、一个事件、一个触发,都尽量代表了执行1-2个功能,把不同的功能,也尽量分成不同的文件来处理,不要怕文件变多,文件变多并不会影响游戏的速度,相反,文件越多,代表你的功能分工越明确。
在我所写的所有触发文件中,暂时没有超过2页的。

2.新建一个“单例”类

这一步非强制要求,但是如果你尝试过,你会理解其中带来的所有的好处。
TapTap
地图类的普通结构
2.1 创建一个地图类,然后创建一个成员变量,取名可以叫【单例】,以下是单例的初始化
TapTap
单例成员的初始化
单例的类型就是这个类本身同时初始化,并且把静态类型 Static 勾上,这样当服务器代码加载完毕之后,就会自动生成一个地图类的全局对象。
TapTap
地图类.单例
这个全局对象,可以在数编里的公式触发中调用,这是普通全局变量和全局函数不行的。
当然,既然是一个地图数据,你可能想到的就是地图难度、地图的挑战模式、地图是否通关等等一堆你可能要做的数据,这些数据不光要可以准确的和客户端沟通来显示UI,同时要可以安全的处理数据,最后要能进行合理的云变量的保存和读取

3.初始化数据

在单例中,构建一个【数据】成员,用来代表了游戏操作的所有相关地图数据,
TapTap
数据的结构
TapTap
数据类型可以是各种类型的,只需要满足你自己的需求就行了,我们这里的是地图,那么就是各种地图的不同数据,所以用一个简单表格式,简单表的key代表了地图名,value代表了每个地图的具体数据
有了数据结构,我们还需要进行初始化,代表了最初的游戏地图数据是什么。
TapTap
所以,我们新建一个初始化数据的成员函数,同时在类的构造器中,直接初始化执行这个函数
TapTap
TapTap
当所有内容做完之后,我们就有了最基本的地图数据方便调用
TapTap

4.数据的逻辑处理

当我们打开地图的时候,我们需要收到客户端打开UI的事件,然后传递相关地图数据,然后在地图通关之后,对玩家通关时选择的难度和通关情况进行数据保存。
这里关于客户端、服务器和UI相关的逻辑省略了....
TapTap
需要注意的是,对玩家传递过来的数据,可以进行数据验证,按照自身游戏的逻辑判定是否满足条件,就算在UI层面做了处理,这里仍然建议再做一次校验,如果发现数据不合理:比如客户端作弊,本来只能挑战难度1,结果挑战了难度2,那么这里校验错误,就不允许继续进行相关战斗后续逻辑

5.云存档和读取

这一块代码实际上比较复杂,需要有一定的基础和相关云变量的代码经验。
基本的逻辑为:游戏初始化开始,获取地图相关云变量,如果没有那么进行地图云变量的保存;如果存在,那么进行云变量的读取赋值。
看起简单,但是其中有很多细节要注意!!
由于我们保存地图数据可能存在于游戏的各个阶段,所以我们把这个功能写到 单例 里面,这样当我们通关地图、玩家首次游玩游戏等时机,就统一调用保存函数。
TapTap

5.1 云端数据加载

虽然云变量数据加载只在初始化的时候执行1次,但是中间存在比较隐晦的逻辑处理,所以单独说出来。
TapTap
我们保存云变量的时候,保存的整个地图数据的对象,这个对象是一个简单表,简单表的属性是另一个地图结构体对象,意思是这是一个比较复杂的结构,在云端是json格式保存的,中间的格式转换是在lua层面的table表进行转换的。
很多新手觉得,自己建立一个玩家存档数据,云变量的话,只需要读取和加载就行了;
实际上,需要考虑的还有【游戏的更新】,当我们游戏更新之后,存档数据会存在变动,可能新增成员,也可以减少成员,如果这时候读云变量数据并且直接赋值给本地,那么新增的数据就没了。
那我们怎么做才能确保我们新增数据的时候,尤其是给一个类新增成员的时候,使得加载云端数据变成正常呢?
答案就是:遍历我们的云端数据对象,对每一个对象单独进行进行赋值,这样就不会遍历到新增加的成员数据,也就等于不会覆盖新增成员数据(注意:如果我们这个类里面还有更多的类的对象,我们甚至需要再往里走一层,但是一般建立数据结构的时候,尽量不要做两层类结构)
我们这里遍历的是我们自己的类的对象,不是普通的结构数据,普通的比如:map,简单表,数组等,都有官方的的函数。
而自建的类的对象的遍历,我们需要做简单表的强制转换,类型全部写任意;如上图所示
这样做完之后,我们所有的数据就完成了:
1.数据初始化
2.数据逻辑处理
3.数据的云变量保存和读取
三个核心流程了
猜你想搜
星火编辑器 云存档读取
星火编辑器-修改官方预制自定义物品信息模板截图
星火编辑器-修改官方预制自定义物品信息模板
大家对DIY物品信息显示都很热衷,但是在具体实现上还是比较费神费力的,这次的更新将会极大程度上减少开发者的困难,而且非常好用。 首先,需要将编辑器更新到10版本,这次的更新官方重构了物品提示信息面板,并在界面编辑器中加入了7个全新的页面: 我们所要修改的页面主要是【物品信息_物品信息模板】中的【物品信息】控件: 其中【上部属性面板】就是背包效果,【下部属性面板】就是装备效果 这两个不需要管它,我们
18 赞
3 回复
星火编辑器客户端物品获取属性值的方法截图
星火编辑器客户端物品获取属性值的方法
物品添加属性分两种情况 1:设置额外属性 2:添加词缀 各有各的优缺点。 本次主要讲的是添加词缀如何在客户端获取属性值。 第一种情况:词缀buff里的属性值是设置好的固定值。 这类添加给物品后,在客户端获取就很容易。 因为添加的词缀是“装备”词缀,只需要遍历指定的装备词缀列表这条语句,获取到buff_id 再直接将buff_id通过转化成(数编表:buff),再对数编表buff里的属性修改里去获取
9 赞
35 回复
「自制卡牌游戏DIY」战斗抽卡系统(3)截图
「自制卡牌游戏DIY」战斗抽卡系统(3)
#星火编辑器 #星火编辑器入门 #星火编辑器案例 我正在用『星火编辑器』将一张游戏卡牌变成一款卡牌游戏。 在上一期,我们成功把玩家刷新刷出卡的信息经服务端处理后,转化为客户端中可用于显示给玩家的面板控件。这期让我们继续完善战斗抽卡系统及相关功能的触发器逻辑。 还是在触发器客户端,我们已经完成了修改牌面UI的方法,接下来要做两件事:一个是将场上每张刷出来的卡的UI进行生成和保存,另一个是要为
2 赞
新版的背包存档截图
新版的背包存档
舍弃老版超长代码逻辑还不好用的背包存档。想多少个格子就多少个格子不用一个格子创建一个变量,不用写一堆繁琐重复的代码。适用性更强,支持恢复到指定格子,多背包恢复 主要实现核心围绕云变量表这个类型变量来进行处理、获取用户背包栏,循环背包栏获取指定背包栏的物品存入云变量表,然后提交。 读取的话反之也是获取的云变量赋值给云变量表,循环读取背包栏并且获取格子,在将物品放入指定格子 最后附上demo地址 h
36 赞
5 回复
2025年8月8日更新日志【13版本】截图
2025年8月8日更新日志【13版本】
星火编辑器开发团队正在全力研发基于C#的、深度整合AI能力的2.0版本 与此同时,我们也会对当前的13版本保持长期的支持 本次我们对13版本进行了更新和问题修复,相关更新已同步至外网13版本和线上13版本 流式加载Prefab 在数据编辑器-地图设置-高级属性中增加了「流失加载Prefab」功能,此功能可以显著的提升场景、资源较多的游戏的加载速度。 我们选择了部分资源非常多、场景非常大的游戏进行测
官方
22 赞
8 回复
无须申请,星火编辑器现已公测开放下载截图
无须申请,星火编辑器现已公测开放下载
—————————————————— 各位关注星火编辑器的小伙伴: 感谢大家一直以来对编辑器支持! 破晓已去,曙光降临! 星火编辑器现已开启公测! · 关于下载和资格申请 现已无需申请,请去下面的官方首页直接下载! 缘起测试是星火编辑器自诞生以来第一次对外测试! 从2022年八月开始到十一月,历时三个月。 缘起之后缘聚测试,历时又七个月! 缘聚之后,破晓降临,历时又十二个月! 曾经微弱的星火现已渐
官方
325 赞
375 回复
新游《轮回:无限重启》公测-安卓、IOS和PC均已上线,三端互通截图
新游《轮回:无限重启》公测-安卓、IOS和PC均已上线,三端互通
一款融合了 土豆兄弟、刀刀兄弟、武器大师等游戏的弹幕割草游戏,包括策略、挑战、成长,休闲爽快。五种元素超百种技能任意搭配。局外超多养成,遗物圣物地图全部掉落。海量成就奖励,通行证白嫖……超多福利。 这里献上专属兑换码大礼包:GEWANGLB # 游戏杂谈 #游戏日常 #发现好游戏 #星火编辑器#今天游戏圈发生了啥 #
官方
20 赞
10 回复
22:58
星火写轮眼-技能系列006-刀塔2-双头龙截图
星火写轮眼-技能系列006-刀塔2-双头龙
星火写轮眼-技能系列006-刀塔2-双头龙
2 赞
2 回复
02:24
2022 TapTap 游戏发布会|星火编辑器截图
2022 TapTap 游戏发布会|星火编辑器
官方
88 赞
25 回复
安卓恢复正常下载,可以加官方交流②群:618792346
游戏恢复正常下载,安卓可以加官方交流②群:618792346 IOS的,尽量加ios群,可以给我们反馈可能出现的问题,目前已修复了大部分ios问题。
官方
4 赞
7 回复