游戏开发中道具一键合成思路,多级别道具合成,采用递归方法,简单高效。
在游戏开发中我们往往会遇到道具合成的需求,如果玩家自己一级一级的合成太过繁琐,何不直接一键合成他需要的材料,通过递归来完成计算,从初级材料一级一级的完成合成。以下是LUA开发的递归合成思路。
--itemId是需要计算的道具ID
--need_num 是需要itemId这个道具的数量
local function Itemfunc(self,itemId,need_num)
--这一步是去道具表去道具信息,如果没有就退出
local cfg = assemble_cfg[itemId]
if cfg == nil then
--如果走到这里说明已经走到了最低级的道具的下面一层,最低级的道具没有合成道具,所以表会返回nil,此时退出递归,提示道具不足 无法合成
return false
end
--如果有就去存道具的Data里面拿玩家目前拥有的该的道具数量,一般是服务器发过来的。
local num = BackpackData:GetInstance():GetUsedItemCount(cfg.material)
--然后用需要合成的道具数量乘以道具表里规定的合成需要数量 计算出玩家可以获得多少个道具。
local need_num = need_num * cfg.num
--然后用玩家自己以后的道具数量减去合成需要的道具数量,获得还缺少多少道具
local how_much = num - need_num
--如果大于0则存在把道具信息存在一个列表里,这样可以展示给玩家看,每个级别的道具消耗的数量。
if num > 0 then
local list = {
id = cfg.material,
value = num,
}
if how_much >= 0 then
list.value = need_num
end
table.insert(self.item_list,list)
end
--如果数量大于等于0则说明道具已经足够合成,反之则把合成所需要的道具ID和需要这个道具的数量传入递归,进行下次计算,直到结束。
if how_much >= 0 then
return true
else
return Itemfunc(self,cfg.material, math.abs(how_much))
end
end
游戏开发中道具一键合成思路,多级别道具合成,采用递归方法,简单高效。相关推荐
- 游戏开发中的道具管理
前言 在开发游戏的时候,我们肯定会处理道具,不论是多大的游戏都有道具.道具的管理方式也是多种多样.下面记录一下我个人在游戏开发中的道具管理方式. 道具的定义 道具的属性基本分为: ID.类型.数量.图 ...
- 游戏开发中常用的数据结构和算法
转载Loving_初衷 前言 时间流逝,物是人非,就好像涌动的河流,永无终焉,幼稚的心智将变得高尚,青年的爱慕将变得深刻,清澈之水折射着成长. ----------<塞尔塔传说> PS:为 ...
- 游戏开发中常用的设计模式 【game design patterns】
单例模式(Singleton Pattern):用于确保在游戏中只存在一个实例,例如游戏管理器(Game Manager)或资源管理器(Resource Manager). 工厂模式(Factory ...
- 【转载】【《Real-Time Rendering 3rd》 提炼总结】(九) 第十章 · 游戏开发中基于图像的渲染技术总结
本文由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/78309500 这是一篇近万字的总结式 ...
- 【《Real-Time Rendering 3rd》 提炼总结】(十一) 第十四章 : 游戏开发中的渲染加速算法总结
本文由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/78884513 导读 这是一篇1万3千 ...
- VR硬件演进与其游戏开发中的若干注意事项
最近两年虚拟现实(Virtual Reality,简称VR)从刚刚走进公众视野到逐渐变得炙手可热,很多不同领域的IT开发者都想进入虚拟现实领域.本篇文章将首先讲解VR入门所需要学习的知识,然后从VR软 ...
- 游戏开发中,图片资源的精简
蒙板压缩对比图:(此方法可大幅减小游戏包的大小) 包大小对比: 在游戏开发中,包的大小总是与图片资源的大小密切相关,而图片资源中,大多为带有透明度信息的png图像. 那么,如何精简png图片资源呢? ...
- 【《Real-Time Rendering 3rd》 提炼总结】(九) 第十章 · 游戏开发中基于图像的渲染技术总结
本文由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/78309500 这是一篇近万字的总结式 ...
- 坦克大战游戏开发中的设计模式总结
坦克大战游戏开发中的设计模式总结 github地址: https://github.com/2017403603/TankGame_Simple1.0.git https://github.com/2 ...
最新文章
- 又一位!26岁当上985博导,读博期间也曾两次想要退学......
- C语言函数集(十二)
- linux wc命令参数及用法详解
- stand-alone android sdk tools,android make-standalone-toolchain.sh 使用说明
- GIS配准和配准算法基本概念学习
- RecyclerView因版本问题无法加载
- Linux cp 命令的15个示例 - 创建文件和目录的副本
- 用python让excel飞起来 pdf_能听会写的科大讯飞智能办公本,让工作效率瞬间翻番!丨试用...
- 高阶篇:8.1)开模前评审及提交资料;
- 数字温度传感器DS18B20的数据手册理解
- Linux的顶级十六进制编辑器
- ScreenCapture API – QTP截屏工具
- mysql不配置环境变量可以吗_MySQL配置环境变量
- uni.navigateTo传参
- 微信小程序 实现换肤功能
- redis sadd 命令 以及 删除set集合或者单独删除set中的一/多条记录
- 【JAVA基础】重新系统学习Java(五)案例一
- 陈安之励志演讲经典句子
- 一篇文章教你如何写出【✨无法维护✨】的代码?
- Linux 内核揭密