下载 App

[星火进阶]容器的选择

2024/04/01916 浏览主题教程
先叠甲:我不是大佬,也不会代码,以下所有内容都是自我摸索过程中总结的经验,如有错误还请指正。
一、先说明容器的概念:有一个类专门用来存放其它类的对象,这个类就叫做容器,它就是将若干性质相同或相近的类对象组合在一起而形成的一个整体 。
二、星火中的常用容器:数组、map、集合、任意值、简单表、任意数据、自定义类
三、各种容器的优缺点(关键词解释,键:容器的钥匙,值:钥匙对应的值,本地:仅限于服务端或者客户端的环境,异地:对立于服务端或者客户端的环境)(书写预制体的好处:减少运行时计算,可作为数据库)
1.数组:
优点:
1.可以提前书写预制体
2.键为数值,可用作很多对象的id(方便阅读)
3.官方预制的很多类,可通过数组传递到异地
缺点:
1.引用只限于本地,数编,界编无法引用
2.键只有数值,使用的局限性大
3.不知道键时,需遍历,有些情况会浪费运算资源
总结:数组应用的范围大,键为数值时:增删快,可提前书写预制体但只限于本地引用,我一般作为数据库使用
2.map
优点:
1.键可以为任意类型,在运行时,作为临时储存有关联的两个对象很方便
缺点:
1.不能提前书写预制体
2.键为数值的情况下,增删慢
3.引用只限于本地,数编,界编无法引用
总结:map的键可以为任意类型,可应用的范围很广,但不能书写预制体,我一般作为运行时的临时数据库使用
3.集合
优点:
1.没有键,只有值,在运行时储存只有一个对象时方便
2.值不能重复,所以可以通过这种特性,来快速随机出指定数量的对象
缺点:
1.只有值,没有键,所以所有的值不会和任何值有关联
2.不能书写预制体
3.引用只限于本地,数遍,界编无法引用
总结:集合作为,储存多个单种类型的对象时,占用的资源比map小。我一般作为运行时临时数据库使用,来统计同一种对象的数量
4任意值
优点:
1.在对象上快速储存任意值
2.只要是本地环境都可以通过对象获取值
缺点
1.只有对象时才可以使用
总结:写自定义ai的不二之选
5.简单表
简单表我不用(手动滑稽)
6.任意数据
优点:
1.双端维护,我常用于作为双端都可以读取的数据库
缺点:
1.读取麻烦
2.修改麻烦
总结:数据库的一把好手
7.自定义类
优点:
1.值可以为多种类型
2.可书写预制体
缺点:
1.作为云变量值时,增删新的成员,处理起来麻烦
四、常用情况推荐哪种容器
1.双端数据库:首选任意数据
2.多人游戏储存玩家数据:首选数组,下标0的位置随意填充一下
3.本地数据库:首选数组
4.运行时随机指定数量的对象:首选集合
5.运行时两个对象有强关联:首选map
6.客户端唯一真神:自定义类
最后一句话:实际情况,需求的不同,分析不同容器对于需求的实现难度,和增删快慢,做出不同的选择。随机应变才是王道。
打个广告:有便宜的美术嘛😭救救孩子吧
00:19
如何实现单位的随意拖拽摆放?【星火编辑器教程】截图
如何实现单位的随意拖拽摆放?【星火编辑器教程】
很多小伙伴想做自走棋类的游戏,那么就会涉及到单位的一个最基础的操作,就是选中单位并拖拽和摆放,那如何实现单位的拖拽摆放呢,今天就来教大家如何实现这样的功能。实现效果如下视频所示。 教程开始 第一步: 打开编辑器的触发编辑器,新建一个文件夹(我就叫“拖拽功能”,方便对拖拽功能的逻辑进行归类,如果你不建文件夹也没关系,习惯而已) 第二步: 点击文件夹右边的+号,添加一个变量,我这里叫“变量_目前选中的
19 赞
12 回复
星火编辑器-新手教程-关于多游戏模式的配置和触发的获取截图
星火编辑器-新手教程-关于多游戏模式的配置和触发的获取
HELLO 大家好,我是阿木木牧。最近第一版的内部小范围(几人)第一个图的测试已经结束了。 整体游戏以装备数值的崩坏而告终~ (虽然大家都很欢快。。。) 现在准备开始开发下个阶段的内容啦,就是将游戏模式拆分出来。分成单人模式,多人组队模式(合作PVE),多人匹配模式(对抗模式)。那么,怎么配置呢?说来也很简单哈~ 1,在游戏编辑器中,数据编辑器,找到地图设置。 2,编辑地图设置。比如我希望最大数量
14 赞
3 回复
00:11
【个人案例分享】动态注册事件与创建触发器截图
【个人案例分享】动态注册事件与创建触发器
废话阶段: 一般我们刚接触星火的时候,使用触发编辑器里的触发器都是直接通过新建触发器来创建,然后往里面添加预先设置好的事件。 虽然能做出游戏,但这样子的触发器是全局的,后面想添加新的玩法或者内容可能会因为之前的全局触发器导致影响后面的新玩法或者内容。可能会有人想到用打开/关闭触发器或者移除触发器来控制,但这样子仍然不是很方便,所以有没有什么方法可以让某个触发器在必要的时候出现,不必要的时候不在。所
16 赞
3 回复
递归函数写Ai的简单示例截图
递归函数写Ai的简单示例
蓝奏云链接: https://wwxd.lanzouw.com/is23i299rlsh 密码:cgcb //如果函数内有报错给我qq留言 1.解压: 将文件解压后放入项目的 \src\data\methods 文件夹内 2.检查文件完整性: 打开编辑器 打开触发编辑器(服务端) 找到刚才导入进来的函数,看看有没有报错 3.调用: 用计时器调用这个函数
6 赞
3 回复
无须申请,星火编辑器现已公测开放下载截图
无须申请,星火编辑器现已公测开放下载
—————————————————— 各位关注星火编辑器的小伙伴: 感谢大家一直以来对编辑器支持! 破晓已去,曙光降临! 星火编辑器现已开启公测! · 关于下载和资格申请 现已无需申请,请去下面的官方首页直接下载! 缘起测试是星火编辑器自诞生以来第一次对外测试! 从2022年八月开始到十一月,历时三个月。 缘起之后缘聚测试,历时又七个月! 缘聚之后,破晓降临,历时又十二个月! 曾经微弱的星火现已渐
官方
331 赞
375 回复
最简单的装备局教程截图
最简单的装备局教程
蓝奏云地址: https://wwxd.lanzouw.com/igwOW29vbove 密码:f7h3 //文件夹内有示例项目,里面有示例触发,很简单。 //如果项目大,触发器比较多就复制这儿 1.解压: 将equipment_main.lua文件解压后放入项目的 \src 文件夹内 2.修改 修改equipment_main.lua第四行的 p_6jgd 为 自己的项目名
7 赞
2 回复
【开源项目分享】《戍御九州》—防守图项目下载
本项目开源:可随意下载,传播,修改 使用开源请注明出处。 5.22:新增了很多功能,目前有几个bug,预计5.23修复并直接上传到蓝奏云 4.30:修复强化系统,武器内容以填充 目前以实现内容 1,自定义刷怪 2,buff状态栏(最新优化过滤buff) 3.强化合成系统 4.增幅装备系统 5.游戏时间,刷怪倒计时 6.皮肤系统 7.弹窗消息 8.云变量的简单应用 9.对话系统 其他的记不太清楚了 密
精华
18 赞
10 回复