下载 App

[星火进阶]容器的选择

2024/04/01915 浏览主题教程
先叠甲:我不是大佬,也不会代码,以下所有内容都是自我摸索过程中总结的经验,如有错误还请指正。
一、先说明容器的概念:有一个类专门用来存放其它类的对象,这个类就叫做容器,它就是将若干性质相同或相近的类对象组合在一起而形成的一个整体 。
二、星火中的常用容器:数组、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.客户端唯一真神:自定义类
最后一句话:实际情况,需求的不同,分析不同容器对于需求的实现难度,和增删快慢,做出不同的选择。随机应变才是王道。
打个广告:有便宜的美术嘛😭救救孩子吧
星火编辑器-修改官方预制自定义物品信息模板截图
星火编辑器-修改官方预制自定义物品信息模板
大家对DIY物品信息显示都很热衷,但是在具体实现上还是比较费神费力的,这次的更新将会极大程度上减少开发者的困难,而且非常好用。 首先,需要将编辑器更新到10版本,这次的更新官方重构了物品提示信息面板,并在界面编辑器中加入了7个全新的页面: 我们所要修改的页面主要是【物品信息_物品信息模板】中的【物品信息】控件: 其中【上部属性面板】就是背包效果,【下部属性面板】就是装备效果 这两个不需要管它,我们
18 赞
3 回复
星火编辑器客户端物品获取属性值的方法截图
星火编辑器客户端物品获取属性值的方法
物品添加属性分两种情况 1:设置额外属性 2:添加词缀 各有各的优缺点。 本次主要讲的是添加词缀如何在客户端获取属性值。 第一种情况:词缀buff里的属性值是设置好的固定值。 这类添加给物品后,在客户端获取就很容易。 因为添加的词缀是“装备”词缀,只需要遍历指定的装备词缀列表这条语句,获取到buff_id 再直接将buff_id通过转化成(数编表:buff),再对数编表buff里的属性修改里去获取
9 赞
35 回复
「自制卡牌游戏DIY」战斗抽卡系统(3)截图
「自制卡牌游戏DIY」战斗抽卡系统(3)
#星火编辑器 #星火编辑器入门 #星火编辑器案例 我正在用『星火编辑器』将一张游戏卡牌变成一款卡牌游戏。 在上一期,我们成功把玩家刷新刷出卡的信息经服务端处理后,转化为客户端中可用于显示给玩家的面板控件。这期让我们继续完善战斗抽卡系统及相关功能的触发器逻辑。 还是在触发器客户端,我们已经完成了修改牌面UI的方法,接下来要做两件事:一个是将场上每张刷出来的卡的UI进行生成和保存,另一个是要为
2 赞
2025年3月12日更新日志【12版本】截图
2025年3月12日更新日志【12版本】
除部分严重BUG修复会覆盖旧版本,以下新功能均在编辑器版本12中生效。 开发者可以在编辑器顶部菜单-编辑器版本中进行版本切换。 Spine动画 参加过之前开发者沙龙的开发者,应该了解Spine动画原本是星火2.0版本的规划;但是在开发过程中,我们充分评估了工作量和收益,认为此能力在当前版本支持亦是有足够价值的。 在本次更新后,界面编辑器正式支持Spine动画了。 开发者可以在「界面编辑器-组件库」
11 赞
4 回复
新版的背包存档截图
新版的背包存档
舍弃老版超长代码逻辑还不好用的背包存档。想多少个格子就多少个格子不用一个格子创建一个变量,不用写一堆繁琐重复的代码。适用性更强,支持恢复到指定格子,多背包恢复 主要实现核心围绕云变量表这个类型变量来进行处理、获取用户背包栏,循环背包栏获取指定背包栏的物品存入云变量表,然后提交。 读取的话反之也是获取的云变量赋值给云变量表,循环读取背包栏并且获取格子,在将物品放入指定格子 最后附上demo地址 h
36 赞
5 回复
递归函数写Ai的简单示例截图
递归函数写Ai的简单示例
蓝奏云链接: https://wwxd.lanzouw.com/is23i299rlsh 密码:cgcb //如果函数内有报错给我qq留言 1.解压: 将文件解压后放入项目的 \src\data\methods 文件夹内 2.检查文件完整性: 打开编辑器 打开触发编辑器(服务端) 找到刚才导入进来的函数,看看有没有报错 3.调用: 用计时器调用这个函数
6 赞
3 回复
无须申请,星火编辑器现已公测开放下载截图
无须申请,星火编辑器现已公测开放下载
—————————————————— 各位关注星火编辑器的小伙伴: 感谢大家一直以来对编辑器支持! 破晓已去,曙光降临! 星火编辑器现已开启公测! · 关于下载和资格申请 现已无需申请,请去下面的官方首页直接下载! 缘起测试是星火编辑器自诞生以来第一次对外测试! 从2022年八月开始到十一月,历时三个月。 缘起之后缘聚测试,历时又七个月! 缘聚之后,破晓降临,历时又十二个月! 曾经微弱的星火现已渐
官方
325 赞
375 回复
22:58
星火写轮眼-技能系列006-刀塔2-双头龙截图
星火写轮眼-技能系列006-刀塔2-双头龙
星火写轮眼-技能系列006-刀塔2-双头龙
2 赞
2 回复
最简单的装备局教程截图
最简单的装备局教程
蓝奏云地址: https://wwxd.lanzouw.com/igwOW29vbove 密码:f7h3 //文件夹内有示例项目,里面有示例触发,很简单。 //如果项目大,触发器比较多就复制这儿 1.解压: 将equipment_main.lua文件解压后放入项目的 \src 文件夹内 2.修改 修改equipment_main.lua第四行的 p_6jgd 为 自己的项目名
7 赞
2 回复
02:24
2022 TapTap 游戏发布会|星火编辑器截图
2022 TapTap 游戏发布会|星火编辑器
官方
88 赞
25 回复