已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JIANGXI AGRICULTURAL UNIVERSITY 本本 科科 毕毕 业业 论论 文 设文 设 计 计 题目 手游手游 十万个冷笑话十万个冷笑话 精炼系统开发精炼系统开发 学学 院 院 软件学院软件学院 姓姓 名 名 段浩然段浩然 学学 号 号 20111648 专专 业 业 软件工程软件工程 班班 级 级 软件软件 1107 指导教师 指导教师 杨红云杨红云 职职 称 称 副教授副教授 二二 0 一五一五 年年 四四 月月 目录 摘要 I ABSTRACT II 1 绪论 1 1 1 概述 1 1 2 游戏精炼系统介绍 1 1 3 课题研究背景 1 1 4 系统开发目的 2 1 5 开发平台的选择 2 1 6 系统开发方法 2 2 相关技术介绍 3 2 1 CEGUI 介绍 3 2 1 1 CEGUI 简介 3 2 1 2 CEGUI 的工作方式 3 2 2 LUA介绍 5 2 2 1 Lua 简介 5 2 2 2 Lua 的特性 5 2 2 3 Lua 在游戏的作用 6 2 3 DIRECTX 介绍 6 2 3 1 DirectX 简介 6 2 3 2 DirectX 功能 6 3 需求分析 8 3 1 可行性分析 8 3 1 1 技术可行性分析 8 3 1 2 经济可行性分析 8 3 1 3 法律可行性分析 8 3 2 系统需求分析 8 3 2 1 目标需求 8 3 2 2 系统性能需求 9 3 2 3 系统功能需求 10 4 数据库设计 12 4 1 数据库设计 12 4 2 概念模型设计 E R 图 12 4 3 详细数据库设计 13 4 3 1 数据库表结构 13 5 系统概要设计 16 5 1 概述 16 5 2 系统菜单功能描述 16 5 2 1 招财系统模块 16 5 2 2 选择系统模块 16 5 2 3 背包系统模块 17 5 2 4 伙伴系统模块 17 5 2 5 装备系统模块 17 6 精炼系统详细设计 18 6 1 招财系统模块 18 6 2 选择系统模块 20 6 3 背包系统模块 26 6 4伙伴系统模块 28 6 5 装备系统模块 29 7 测试与维护 33 7 1 系统测试 33 7 2 系统维护 36 项目总结 37 参考文献 38 致谢 39 摘要 在竞争日益激烈的手机游戏行业 一味的模仿并不能让游戏开发者在这个浪潮中 站稳脚跟 只有迎合玩家的口味的同时 不断地推陈出新 构思新鲜的玩法 才能打 动玩家 并为之支付相应的金钱 本文分析了当前手机卡牌游戏的发展和现状 通过 Lua 等技术在 Saturn 游戏引 擎的基础上开发了一套完整的游戏精炼系统 本文着重描述了从需求分析 总体设计 到详细设计 再到系统实现的一个游戏新功能系统开发的全过程 在需求分析部分 根据具体需要 对需求进行了细化的分析 并用流程图的方式 为开发流程进行表示 在总体设计部分 根据系统设计的一般原理 和系统需求分析 的结果 得到本系统技术 功能 逻辑 数据等方面的架构设计 为具体的系统开发 提供了强有力的开发依据 在详细设计部分 本文对该系统做了详细说明 并规划出了系统的具体模块和模 块之间的关系 得到了一个大致的游戏精炼系统开发原型 在系统实现部分 本文对系统中各种模块要求的具体实现做了详细介绍 并辅以 代码和效果图说明 同时还简单介绍测试的方案 关键词 Lua CEGUI 手机游戏 十万个冷笑话 I Abstract In the increasingly fierce competition in the industry of mobile phone games imitate and not allow game developers to gain a foothold in this wave only to cater to the taste of the game player at the same time constantly bring forth the new through the old the idea of fresh slighting the law to move the game player and pay the appropriate money for it This paper analyzes the current development status of mobile phone card and card game through the Lua technology based on Saturn game engine developed a complete game refining system This paper describes the analysis the overall design from the demand to the detail design then to the whole process of developing a new game system function realization of the system In the demand analysis part according to the specific needs of the demand of the refinement analysis and chart the way for the development of process representation In the overall design part according to the general principles of system design and system requirements analysis results this system technology functional logic data and other aspects of the architecture design provides a strong basis for the development of specific system development In the detailed design part the paper makes a detailed description of the system and designed the relationship between specific classes and class system to get a rough game refining the prototype system development In the part of system implementation this paper on the various modules in the system to achieve the specific requirements in detail supplemented by code and effect diagram shows it also introduces the test scheme Keywords Lua CEGUI Mobile phone games One hundred thousand cold joke 绪论 0 1 绪论绪论 1 1 概述 自从 我叫 MT 持续火爆以来 卡牌类手游如雨后春笋般涌现 特别是 刀塔 传奇 这款月流水达到 2 7 亿的业界奇迹的诞生 更加刺激了还没有稳定下来的手游 市场 IP RPG 卡牌 成了所有手游公司的宠儿 大家争相参与到抢夺手游市场这一不 算大的奶酪的漩涡中 那么如何在卡牌游戏泛滥的今天 从众多同类型的游戏中脱颖 而出成了所有游戏公司思考的第一要素 十万个冷笑话 就是众多寻求突破的卡牌类游戏中的一个 在拥有着大量 IP 粉丝的基础上 十万个冷笑话 秉承着继承原著的冷笑话的特色外 积极进行了大 量的创新 比如提升装备性能的精炼系统 将伙伴还原初始状态的重生系统 玩家 PVP 的武道会系统 玩家组队 PVE 的工会猎场系统等等 花样层出的新玩法让玩家 不会有腻烦感 在为玩家打造一个二次元的世界观的同时 也让广大玩家自主参与进 来 打造一个属于自己的游戏团队 1 2 游戏精炼系统介绍 精炼系统作为帮助玩家提升伙伴装备性能的模块 属于一个独立的分支 所谓精 炼 就是去除杂质提取精华 将装备性能提升 除了帮助玩家提升伙伴能力 增加 PVE 闯关几率外 还是同等级玩家 PVP 之间胜负的关键 所以 一个平滑而稳定的 精炼系统是让玩家认可游戏并且不会失去游戏兴趣的一个要素 精炼系统贯穿了装备 系统 伙伴系统 背包系统等游戏的几大主要框架 精炼完之后立刻同步刷新几大系 统 让游戏实时性得到了完整的体现 游戏的精炼系统主要是从玩家的背包中获得需要精炼的装备 再从背包中找到为 装备提供进阶的材料或者装备 并且玩家的金币数量能供给需要消耗的数量 以上条 件都满足时 装备可以开始精炼 当装备达到顶级时 装备不可再被精炼 此时可以 更换伙伴身上其他装备 继续提升装备等级 打造一个 神装 伙伴是竞技游戏的乐趣 所在 1 3 课题研究背景 十万个冷笑话 是一款面向所有玩家的 3D 横版 RPG 游戏 不同类型的玩家 有着不一样的游戏需求体验 高级人民币玩家 为了体会唯我独尊的感觉 需要将伙 伴提升到他人不可企及的地步 才能体会藐视天下的自豪感 而普通大众玩家 为了 绪论 1 在朋友之中拔得头筹 也会选择各种各样的方式去增加自己的战斗力 而在伙伴等级 都达到顶峰之后 最直接也是大家都能想到的是通过提升道具来使自己的伙伴得到提 高 为了达到这一目的 精炼系统也就随之诞生了 1 4 系统开发目的 十万个冷笑话 的精炼系统是一个针对高级用户追求独孤求败的感觉的一个捷 径 也是普通玩家之间打开突破口的一个方式 所以要做到适应所有用户需求 整个 团队在策划 执行 效果上花了大量的时间 最终在策划设计好数据 服务器提供精 炼接口之后 为了玩家能够一目了然的理解 并且喜欢这一功能 这是我作为客户端 界面编程的主要目的 1 5 开发平台的选择 开发系统 windows7 程序语言 C Lua 开发环境 Vs2010 游戏引擎 Saturn 的逻辑编辑器和 UI 编辑器 1 6 系统开发方法 本文按照游戏开发流程方法 结合精炼系统的特点 自顶向下地对系统进行分析 与设计 开发一个面向所有玩家的精炼系统 该项目以 lua 为主要开发语言 辅以美 术提供的效果图进行界面 UI 框架搭建 由于程序涉及大量数据的调用和存储 因此 数据库方面使用配置表来处理这些涉及装备的数据 在 UI 编辑器中 依据需求文档和效果图来摆放窗口控件 设置他们的层级 对 应属性和背景图 在逻辑编辑器中 将 UI 搭建好的框架导入到代码 将一个个需要 用到的的窗口初始化 并且依据需求给窗口绑定相关的事件 达到跟玩家互动 从策 划填写的配置表中获取相关数据 通过向服务器发送请求和接受回调来对界面进行设 置 相关技术介绍 2 2 相关技术介绍相关技术介绍 2 1 CEGUI 介绍 2 1 1 CEGUI 简介 CEGUI Crazy Eddie s GUI 是一个自由免费的 GUI 库 是一个完全面向对象 设计 由 C 来实现 CEGUI 开发者希望能够让游戏开发人员化繁为简 有更多的 开发时间放在游戏性提升上 CEGUI 需要 3D 图形 API 的支持来渲染 如使用 OpenGL 或 Direct3D 或者使用更高级的图形库 比如 OGRE Irrlicht 和 RenderWare 等 CEGUI 支持各种主流系统 比如 windows linux 和 MacOS 截止目前 CEGUI 的版本开发到了 0 8 CEGUI 提供了一款便捷的官方界面编 辑器 CEED 该编辑器集成了之前 LayoutEditor 和 ImageSet 编辑器的功能 方便 UI 和图像集的开发 作为一款界面编辑器 它需要系统界面用以提供编辑器操作 在最 初的 0 3 0 版 它是基于 MFC 实现的 而在 0 4 0 版本以后 改为基于 wxWidgets 实 现 目前将 CEGUI 作为游戏界面库开发的游戏有很多 比如天龙八部 巨人等游戏 CEGUI 的功能非常强大 使用也非常的灵活 并且可以和配合脚本 可以通过修改 配置文件来自定义窗口外观 通过布局文件去实现窗口布局等等 这些特性使得游戏 的界面开发更加高效 我们制作的 十万个冷笑话 所用的游戏引擎 Saturn 的 UI 编 辑器就是封装了 CEGUI 作为界面库开发的方式 2 1 2 CEGUI 的工作方式 根据美术部门提供的 UI 资源图 生成一个 XML 格式的 imageset 文件 这个文 件包含了所有供 looknfeel 使用的小图案 同时这个文件提供给后面的 scheme 和 looknfeel 文件来使用 接着手动生成一个 looknfeel 文件 通过这个文件去创建各种类型的控件 widget 这些 widget 在 scheme 文件中进行了装载 以及注册 手动生成一个 scheme 文件 这个文件的内容包括要用到的 imageset 文件 它所 对应的 looknfeel 文件 以及将要在 looknfeel 里定义的控件类型 工厂 渲染器和在 looknfeel 中的用的名字 以及对 widgets 进行注册 然后通过使用 CELayoutEditor 来生成 layout 类型文件 启动 CELayoutEditor scheme 类型文件会自动加载 我们可以使用 Widgets 树下的 相关技术介绍 3 Widget 方法来布局我们的游戏 UI 布局完成后将自动生成一个 layout 文件 上面所述的流程完成后 我们手上就具备了使用 CEGUI 来制作界面的所需数据 文件了 最后我们使用 CEGUI 来制作游戏界面 不论在什么平台下 都有以下基本步骤 要做 在使用 CEGUI 之前 需要加载一些数据文件 和完成初始化 这些数据文件就 是前面所介绍的 scheme Imageset looknfeel 几种类型文件 1 装载 imageset 文件 经过这一步 程序的后面就能使用 Vanilla 的 widgets 了 1 Imageset taharezImages ImagesetManager getSingleton createImageset Vanilla imageset 2 初始化鼠标指针的图像 他的名称为 MouseArrow 包含在 Vanilla imageset 中 所以我们须先执行第一步 不过这一步不是必须的 1 System getSingleton setDefaultMouseCursor 3 通过 FontManager getSingleton 来自动装载字体 1 FontManager getSingleton createFont Commonwealth 10 font 4 通过 WidgetLookManager getSingleton 来自动装载 looknfeel 然后 Vanilla looknfeel 中的 Widgets 就可以在程序被使用 1 WidgetLookManager getSingleton parseLookNFeelSpecification Vanilla looknfeel 5 使用 SchemeManager getSingleton 函数来装载 VanillaSkin scheme 类型文件 用来注册 Vanilla Widgets 组件 1 SchemeManager getSingleton loadScheme VanillaSkin scheme 在此 系统的初始化操作已经基本完成了 我们可以在 CEGUI 中创建 UI 元素 了 而在 CEGUI 中 所有的 window 都是由 WindowManager singleton object 来创 建的 所以我们首先得到这个对象 using namespace CEGUI WindowManager 一般来说 我们总是创建一个 名为 DefaultWindow 的控件来做为我们将使用的 窗口的 Root 窗口 因为用这种方式我们将会有比较好的灵活性 相关技术介绍 4 Window myRoot wmgr createWindow DefaultWindow root System getSingleton setGUISheet myRoot 安装 myRoot 作为 GUI 的底层元素 createwindows 函数的第一个参数 指明了将要创建窗口的类型 它一般是在 我们使用的 scheme 文件中所注册的 还有一些系统定义的有效的窗口类型 如上 面所提到的 DefaultWindow DefualtWindow 是不可见的 只是做为所有窗口的 root 来使用 一般来说我们总是要创建一个 Framewindow 它包括其他窗口与 widget 本身 也是可视的 FrameWindow fWnd FrameWindow wmgr createWindow TaharezLook FrameWindow testWindow 之后 我们将创建的窗口挂载到 root 上 形成一个层级关系 myRoot addChildWindow fWnd myRoot addChildWindow winMgr loadWindowLayout VanillaWindows layout 这种方法直接装载 celayouteditor 生成的 layout 文件 把 layout 生成的图像直接 挂载到 root 上 2 2 Lua 介绍 2 2 1 Lua 简介 Lua 是一个精致的脚本语言 是巴西里约热内卢天主教大学 Pontifical Catholic University of Rio de Janeiro 由 Roberto Ierusalimschy Waldemar Celes 和 Luiz Henrique de Figueiredo 所组成的一个研究小组于 1993 年开发 Lua 的设计目的是为了 应用程序中嵌入脚本 从而为程序提供灵活的扩展功能和定制功能 它由标准 C 编 写而成 在所有操作系统和平台上几乎都可以编译 运行 它并没有提供强大的库文 件 这是由 Lua 的定位决定的 Lua 不适合作为开发独立应用程序的语言 Lua 脚本很容易的被 C C 代码调用 当然也可以反过来调用 C C 的函数 这使得 Lua 在应用程序中能被广泛应用 Lua 不仅仅作为扩展脚本 同时也可以代替 xml ini 等文件格式作为一个普通的配置文件 并且 Lua 更容易理解和维护 一个完 整的 Lua 解释器不超过 200KB Lua 在目前已知的脚本引擎中 运行速度是最快的 这一切都说明了 Lua 是作为嵌入式脚本的最优选择 2 2 2 Lua 的特性 1 轻量级 Lua 语言的官方版本只包括一个简洁的核心和最基本的库 这让 Lua 体积小 启 动速度快 适合嵌入在别的程序里 5 0 2 版本的 Lua 的内核小于 120KB 相比之下 相关技术介绍 5 Python 的内核大约 860KB 而 Perl 的内核大约 1 1MB 2 可扩展 Lua 并不象其它许多 大而全 的语言一样包括很多功能 如网络通讯 图形界面 等 不过 Lua 提供了非常易于使用的扩展接口机制 由宿主语言 通常是 C 或 C 提 供这些功能 Lua 可以调用它们 就像是内置的功能一样 3 其它特性 Lua 还具有别的一些特性 比如同时支持面向过程 procedure oriented 编程和函数 式编程 functional programming 内存自动管理 提供了一种强大的表 table 用它 可以实现数组 队列 集合 对象等等 函数也可作为一个值 提供了多线程 协同 进程 并非操作系统所支持的线程 支持 通过闭包和 table 可以支持面向对象编程 所需要的一些关键机制 比如数据抽象 虚函数 继承等 2 2 3 Lua 在游戏的作用 Lua 作为一种脚本语言相当受游戏公司的欢迎 不管是它自身轻量级的设计还是 自身适合在线热修复都是让众多拥趸爱不释手的原因 十万个冷笑话 项目也是用 了 Lua 作为主要开发语言 在 C 搭建好底层的基础上 Lua 为逻辑编译器提供支持 负责客户端的搭建 和服务器之间进行通信 但是 Lua 也不是万能的 在用于操作系 统底层时他的效率较低 所以对系统底层的操作实现还是要使用 c c 2 3 DirectX 介绍 2 3 1 DirectX 简介 DirectX 是由微软公司创建的一种多媒体编程接口 它由 C 编程语言实现 遵 循 COM 机制 它被广泛使用于 Microsoft Windows Microsoft XBOX 360 和 Microsoft XBOX ONE 等等电子游戏开发 并且只支持这些平台 最新版本为 DirectX 12 创建在最新的 Windows10 操作系统下 2 3 2 DirectX 功能 DirectX 加强了 3D 图形和声音效果 并给设计人员一个共同的硬件驱动标准 让开发者不必在为了不同品牌的硬件写不同的驱动程序 降低了用户安装及设置硬件 的复杂度 举例来说 以前在 DOS 下 玩家玩游戏时 并不是安装后就可以玩了 他们往 往需要要设置声卡的品牌和型号 还要设置 IRQ 中断 I O 输入与输出 DMA 存取模式 而哪项设置的不对 游戏声音就发不出来 这部分不仅让玩家伤 透脑筋 对游戏开发者来说更为头痛 为了让游戏能够在众多电脑中方便的运行 开 相关技术介绍 6 发者必须在游戏制作伊始 就把市面上所有声卡硬件数据都收集过来 然后根据不同 的 API 应用编程接口 来写不同的声音驱动程序 对于游戏制作公司来说 这是 很难实现的 所以在当时多媒体游戏很难普及 微软公司正是看到了这个问题 为厂 商推出了一个共同的应用程序接口 DirectX 只要开发者是依照 Directx 来开发的 不管显卡 声卡型号如何 玩家统统都能玩 而且还能发挥更佳的效果 当然 前提 是使用的显卡 声卡的驱动程序还得支持 DirectX 才行 需求分析 7 3 需求分析需求分析 3 1 可行性分析 3 1 1 技术可行性分析 游戏的精炼系统是用 lua 语言写的 本人对于 lua 语言比较熟悉 而这个项目的 框架使用 UI 编辑器编写 开发工具用的是脚本编辑器 出于本人对于这些知识都比 较了解 之前也学习过 LUA CEGUI DirectX 方面的知识 对编辑器使用方式很熟 悉 以及对项目开发流程有一定的理解和项目组长精心的指导 所有在项目进展方面 技术问题可以很好的解决 3 1 2 经济可行性分析 经济可行性分析研究目的 是希望以最小的开发成本 取得具有最佳经济效益的 软件产品 经济可行性研究主要包括估计投资和效益分析 对于经济可行性 我们要分三部分来考虑 首先 我们要考虑的是 玩家使用精 炼系统的频率 本系统在游戏中有着举足轻重的地位 除了链接伙伴 装备和背包 三大基础系统 还是玩家提升自身伙伴价值的最好途径 所以愿意使用本系统的频率 绝对频繁 花费的经济收入也就随之提高 其次 我们要考虑 精炼系统使用费用 本系统由于对待不同的装备需要不同的 材料和数量 因此每一件物品的提升所需要的花费都是不一样的 如何定义这些花费 是需要在游戏之前就进行详细的调查和计划 这样才能满足玩家的想法 合理的定价 是重中之重 这样玩家才肯在精炼系统上投入经济层次 最后我们要考虑的是精炼系统的维护 在前面我们已经把系统的 使用 和 花费 包含在内 因此 我们主要强调 维护 的重要性 系统的维护是指纠正精炼系统出现 的错误或缺陷 为满足用户新的要求进行扩充 升级 任何程序都是需要维护的 由 于本系统使用环境的性能较为稳定 可扩展性强 所以 本系统在维护方面所需要的 费用也是很低的 只需要策划花费时间对不合理的数据进行调整即可 3 1 3 法律可行性分析 此项目是在项目组授权下为了开发之用 所以具有法律可行性 3 2 系统需求分析 3 2 1 目标需求 随着手机游戏性能的日益强大 与之相伴的游戏体验也日益复杂 功能设计团队 需求分析 8 要设计一款符合用户需求的功能系统变得越来越困难 原因是玩家的需求变化大 如 果设计者没有对玩家的想法有很好的调查 那么设计出的功能将变得无用 精炼系统 作为一种面向大众化的功能系统 在开发之前就对玩家进行了大量的数据挖掘 使得 应用在系统的开发中 极大的降低了游戏功能反复重做的概率 作为项目头脑的策划 组成员也通过反复地协商设计 讨论完善系统功能 更好的做出相应的决策 3 2 2 系统性能需求 精炼系统产品的性能需求是指游戏系统为了满足玩家业务需求而必须具备的功能 性需求以外属性或者品质 如可靠性 响应时间 容错性 扩展性等 精炼系统是基于背包系统 装备系统和伙伴系统开发的功能系统 为了使策划组 组及玩家都能准确实时的了解到精炼系统开发的具体信息 精炼系统设计必须满足以 下的要求 具有友好 吸引人的界面 安全性要高 稳定性要强 1 可靠性 可靠性是指系统使用的游戏可靠程度 是精炼在游戏运行中不发生或极少发生故 障 在偶然事故及操作失误时 系统应具有较强的适应能力 而不应造成游戏崩溃或 玩家体验丢失 由于本系统是一个会长期运行的对玩家开发使用的游戏功能 所以其 故障出现率应该控制在 0 次以内 2 安全性 由于精炼系统使用的数据都是玩家数据库内存的数据 每个玩家的财产信息具有 安全性 保密性 在开发时 应该在获取玩家信息的同时具有保密措施 3 数据准确性 精炼系统在获取数据和保存数据都是通过客户端与服务器进行对比之后再进行数 据传输 所以数据的准确性是具有很明确的保证 4 友好的玩家界面 界面一直以来都是一款游戏的重中之重 特别是与玩家交互这一块更是玩家是否 愿意滞留在游戏中并且为之花费金钱的主要原因 系统要让玩家简明地了解操作步骤 同时又要比其他同款游戏有新意 就必须在交互界面上下文章 精炼系统要让玩家一 眼就能明白如何使用 并且对界面大加好评 要人性化的去考虑如何实现功能 5 可扩展性 游戏需求是在不断的发展变化的 精炼系统有可能会随着游戏剧情的扩展变化而 不断的加入新功能 所以在不影响现有功能的同时能够容易地对系统进行扩充 接口 的复用至关重要 需求分析 9 3 2 3 系统功能需求 1 精炼系统的参与者如下表 3 1 表 3 1 精炼系统参与者表 参与者相关人员功能描述 玩家玩这款游戏的用户对游戏精炼进行亲身体验 并且提出有 建设意义的反馈 游戏管理者运行游戏的代理商要对玩家的反馈进行分类 适当的向策 划人员提出需要改进的要求 策划开发者游戏的策划师自己思考或者接受他人建议来对系统进 行完善修改 写出文档提供给开发人员 程序开发者参与游戏编程的开发人员通过策划的需求文档来改进系统 2 精炼系统功能列表 根据游戏的需求分析该系统可以分为两部分 一是后台管理功能 二是前台与客 户交互功能 前台功能需要由多个窗口来构成 各个窗口功能列表如下 3 2 表 3 2 系统功能介绍表 窗口功能细化 关闭按钮玩家退出精炼回到主界面 功能选择栏除了默认精炼 玩家还能自由选择其他功能 选择需要精炼装备打开背包的入口 开始选择装备 伙伴装备列表将已经穿上的装备和没有穿的装备区分开来 精炼消耗材料列表将背包中用于精炼的材料显示出来 精炼消耗金币数量将精炼需要的金钱显示出来 兑换金币按钮金币不足时 自行选择是否用现金去兑换游戏金币 启动精炼按钮开始精炼的入口 精炼动画开始启动后播放动画 精炼成功提示精炼完成后 进行提示 根据系统的参与者和功能列表 可以确定参与者和系统功能之间的关系 从而画 出需求的用例图 用例图是对系统功能的勾画 显示了系统的相关功能 以及如何使 用系统 精炼系统详细用例图如图 3 1 图 3 2 所示 编程改需求提建议玩 家 游 戏 管 理 者 策 划 开 发 者 程 序 开 发 者 反馈 游 戏 需求分析 10 图 3 1 游戏参与者之间的关系图 进入精炼 关闭按钮选择装备功能选择栏 伙伴装备列表 精炼消耗材料列表精炼消耗金币数量兑换金币按钮 启动精炼 播放精炼动画 精炼成功 图 3 2 窗口功能用例图 数据库设计 11 4 数据库设计数据库设计 4 1 数据库设计 数据库设计是指对于一个给定的应用环境 构造最优的数据库模式 建立数据库及 其应用系统 使之能够有效地存储数据 满足各种应用需求 适时修改 玩家查看 1 数据库是存储一款游戏的核心和基础 把每一个玩家全部的数据按一定的模 型组织起来 提供存储 维护 检索数据的功能 使服务器可以方便 及时 准确地从数据库中获得所需的信息 2 数据库是游戏内所有系统各个部分能否紧密地结合在一起以及如何结合的关 键 3 数据库设计是游戏开发和建设的重要组成部分 4 2 概念模型设计 E R 图 E R 模型的概念 E R 图概念化地构建实体间关系的模型 这是它们区别于数据库 图的方式 ER 图的理念是 让项目所有的参与者都能理解 E R 图 ER 图由不同实 体类型 关系 特性和类型构成 实体是用户的实际对象 有时更加抽象 但必须有 业务意义 特性用于描述实体 关系用于实体之间 1 实体 现实世界中的事物 2 属性 事物的特性 3 联系 现实世界中事物间的关系 实体集的关系有一对一 一对多 多对多 的联系 4 本系统的 E R 图如图 4 1 数据库设计 12 图 4 1 系统 E R 图 4 3 详细数据库设计 4 3 1 数据库表结构 1 伙伴表 伙伴表是 十万个冷笑话 游戏记录游戏中玩家可以使用的 AI 的数据 这里截 取部分展示 表 4 1 伙伴表 字段名字段名类型Not null 索引 伙伴 IDcreature attr idIntegerNot null 伙伴名称creature attr nameVarchar 10 伙伴性质creature attr descVarchar 10 伙伴描述creature attr introVarchar 100 数据库设计 13 伙伴定位creature attr position introVarchar 10 伙伴图标creature attr square iconVarchar 10 伙伴特殊图标creature attr special iconVarchar 10 伙伴特效creature attr effectVarchar 10 作为 NPC 的 ID creature attr npc tmp idInteger 伙伴模型creature attr model view yawInteger 2 装备合成表 装备合成表是记录合成装备的方式 表 4 2 装备合成表 字段名字段名类型Not null 索引 编号item compound idIntegerNot null 装备描述item compound descVarchar 10 装备序列号item compound targetVarchar 10 合成卷轴序列 号 item compound material 0Varchar 10 卷轴需要数量item compound number 0Integer 合成材料 1 序 列号 item compound material 1Varchar 10 材料 1 数量item compound number 1Integer 合成材料 2 序 列号 item compound material 2Varchar 10 材料 2 数量item compound number 2Integer 3 上衣类装备表 上衣类装备表是记录装备中上衣类型的表 表 4 3 上衣类装备表 字段名字段名类型Not null 索引 装备名item attr nameVarchar 10 Not null 装备描述item attr design descVarchar 10 是否发布item attr ispublishBooleanNot null 序列号 1item attr generalInteger 序列号 2item attr detailInteger 序列号 3item attr particualrInteger 序列号 4item attr levelInteger 装备用途item attr introVarchar 10 4 武器类装备表 武器类装备表是记录装备中武器类型的表 表 4 4 武器类装备表 字段名字段名类型Not null 索引 数据库设计 14 装备名item attr nameVarchar 10 Not null 装备描述item attr design descVarchar 10 是否发布item attr ispublishBooleanNot null 序列号 1item attr generalInteger 序列号 2item attr detailInteger 序列号 3item attr particualrInteger 序列号 4item attr levelInteger 装备用途item attr introVarchar 10 5 饰品类装备表 饰品类装备表是记录装备中饰品类型的表 表 4 5 饰品类装备表 字段名字段名类型Not null 索引 装备名item attr nameVarchar 10 Not null 装备描述item attr design descVarchar 10 是否发布item attr ispublishBooleanNot null 序列号 1item attr generalInteger 序列号 2item attr detailInteger 序列号 3item attr particualrInteger 序列号 4item attr levelInteger 装备用途item attr introVarchar 10 6 鞋子类装备表 鞋子类装备表是记录装备中鞋子类型的表 表 4 6 鞋子类装备表 字段名字段名类型Not null 索引 装备名item attr nameVarchar 10 Not null 装备描述item attr design descVarchar 10 是否发布item attr ispublishBooleanNot null 序列号 1item attr generalInteger 序列号 2item attr detailInteger 序列号 3item attr particualrInteger 序列号 4item attr levelInteger 装备用途item attr introVarchar 10 系统详细设计 15 5 系统概要设计系统概要设计 5 1 概述 精炼系统的详细设计 就是在总体设计的基础上 对功能进一步分类 通过构建 适合的模型来将功能一一展现 精炼系统作为一个单一功能的系统 细分模块不是很 多 但是为了保证不出现任何 bug 每一步都要详细考虑 以下是系统模块结构图 精炼系统 招财系统 获 得 金 币 选择系统 选 择 精 炼 选 择 重 铸 背包系统 查 找 材 料 查 找 物 品 伙伴系统 装 备 列 表 空 闲 装 备 装备系统 可 精 炼 装 备 不 可 精 炼 装 备 图 5 1 系统模块结构图 5 2 系统菜单功能描述 5 2 1 招财系统模块 招财系统是精炼中额外添加的系统 这个系统是在玩家察觉到金币不足以提供一 次精炼时 主动使用的功能 当然玩家未察觉时 系统自动会提示玩家是否执行该功 能 1 获得金币 获得游戏币 用于游戏中的开销 5 2 2 选择系统模块 前文提到 该系统有良好的扩展性 主要体现在这里 为了今后在这里加入更多 新功能 这里设置了一个选择系统 用于玩家选择需要执行的功能 目前主要有以下 两个功能点 1 选择精炼 执行对物品属性提升的精炼 2 选择重铸 将已经进阶过的伙伴或者装备熔炼成初始状态 并且获得之前所 系统详细设计 16 消耗的材料 5 2 3 背包系统模块 背包系统是这个精炼的重要组成部分 它通过打开玩家存储在服务器上的背包表 中的数据 在客户端上展示出来 1 查找材料 通过对材料背包的索引 把可以用于精炼的材料全部加载到材料 窗口中 2 查找装备 通过对装备背包的索引 把可以用于精炼的装备全部加载到装备 窗口中 5 2 4 伙伴系统模块 伙伴系统是为了查看装备是否已经被使用而设置的系统 分成两个部分 用来帮 助玩家确认直接把使用中的装备进行精炼 主要有以下两个功能点 1 装备列表 伙伴身上分为上衣 鞋子 饰品和武器四个区域 这里展示了在 这四个区域内的装备 2 空闲装备 这里展示的是并不在伙伴身上的装备 5 2 5 装备系统模块 装备和伙伴的品质一样 分为橙紫蓝绿白五种 最低等级的白色是不可以进行精 炼的 只有绿色及其以上才行 所以这里设置了一个装备系统 用来告诉玩家哪些装 备可以被精炼 1 可精炼装备 顾名思义 绿色以上装备在这里 2 不可精炼装备 白色装备在这里 系统详细设计 17 6 精炼系统详细设计精炼系统详细设计 因为本系统代码模块众多 所以这里结合部分代码和效果图片具体阐述系统设计 的详细流程 精炼系统初始化界面如图 6 1 图 6 1 精炼系统初始图 6 1 招财系统模块 招财系统由于是调用外部招财接口 这里首先介绍一下这个接口 这是一个作用 在整个系统而封装的功能 在游戏中 一旦遇到金币不足时 都会调用该接口进行提 示 然互进入招财功能 这个接口写在 UI 文件下的 ui heleper lua 文件中 目的是说 明是 UI 界面的通用功能 下面的代码其实是整个游戏封装好的一个公共的提示框的 代码 其中 SIdToMultiVal UIMultiValueConfigs Enhance 3 这句话指的是在名字 为 Enhance 的字符串数据表的第三个内容 也就是 您的金币不够用了 是否去招财 这句话的代指 而下面 GlobalComMsgDlg SetButton1 SIdToStyle UIConfigs Ok nil nil G Alchemy MutexShow 这句话是设置确认按钮功能的语句 我们调用接口主要 执行的地方就是这个 G Alchemy MutexShow 函数 他为我们提供了一个将招财界面 显示出来的功能 金币不足通用提示 系统详细设计 18 UIHelper GoldConfirm function local szText SIdToMultiVal UIMultiValueConfigs Enhance 3 GlobalComMsgDlg ResetAll GlobalComMsgDlg SetButton1 SIdToStyle UIConfigs Ok nil nil G Alchemy MutexShow GlobalComMsgDlg SetButton2 SIdToStyle UIConfigs Cancel GlobalComMsgDlg SetPrompt szText GlobalComMsgDlg ShowDlg g GameTop true end 以下是调用接口的代码 调用招财接口 function l tRefining Go2Alchemy l tUIHelper GoldConfirm end 初始化函数 function l tRefining Init self pChargeBtn pMainPage getChild srmp charge btn self pChargeBtn subscribeEvent l pCEGUI EventTouchClick self Go2Alchemy end 代码如上所示 第一段代码执行的是调用外部的接口 l tUIHelper GoldConfirm 它的功能就是如图 6 2 提示跳转到招财界面 该接口已经被系统封装好了 这里不 再说明 第二段是界面的初始化函数 在这里将 layout 文件中的按钮窗口加入到游戏 中 并且给这个按钮绑定了一个点击事件 即点击按钮后执行第一段代码定义的 Go2Alchemy 函数 系统详细设计 19 图 6 2 提示跳转到招财模块 招财功能除了点击左上角的加号可以调用出来 当自身金币不足时 执行精炼功 能 系统会自动弹出这个功能 关于这点 由于是别的部分内容 本文中不会再提到 6 2 选择系统模块 选择系统是一个扩展性很强的模块 该模块是为了今后在这一个界面增加新的 功能而设定的主要界面如 6 1 所示 图中右边的 精炼 和 重铸 按钮就是这个模块的 界面表示 今后如果增加新功能 也就是在这下面增添新的栏目 代码如下 显示相应页签对应的内容 l tRefining tUpdateInfo 1 function uItemId 精炼 l tRefining pTimeLimitBtn hide l uCreatureId nil l tRefining pSelEntrance show l tRefining pSelEntrance setProperty IdleImage set sat item 0 image equip0 local szTitle 系统详细设计 20 SIdToMultiVal l tMultiVal AboutRefining3 0 l tRefining pTitle setAnsiText szTitle local pProp nil if uItemId then pProp G ItemList SearchID uItemId end if not next l tbEquipList and not next l tbMaterialList then l tRefining pExcuteEffect hide end if pProp then l uOldLv pProp GetRefineLvl l tUIHelper SetItemObject l tRefining pSelEntrance pProp l tRefining pRefineEqStatus setAlpha 0 l tRefining pRefineEqStatus show l tRefining SetEquipStatus l tRefining tEquipAttrs 1 setTimer 0 1 l tRefining pRefineEqStatus startAlphaFading 1 1 if pProp GetSlotColor 0 then local szDiamondBox G tDi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年商洛市重点中学高二上化学期末联考模拟试题含解析
- 2025年云南省玉溪市江川区第二中学化学高二第一学期期末质量跟踪监视试题含解析
- 抚州职业技术学院《机械制造技术基础A》2024-2025学年第一学期期末试卷
- 江苏省镇江市淮州中学2025-2026学年物理高二上期末复习检测模拟试题含解析
- 2023年随州辅警招聘考试题库及答案详解(有一套)
- 2023年齐齐哈尔辅警协警招聘考试备考题库附答案详解(达标题)
- 吉林省长春市2026届数学高二上期末质量跟踪监视模拟试题含解析
- 天津市宝坻区大口屯高中2025年数学高二上期末联考模拟试题含解析
- 哈尔滨体育学院《运筹学概论》2024-2025学年第一学期期末试卷
- 试卷月考试卷分析(3篇)
- 2025年及未来5年中国数字示波器行业市场深度分析及投资前景展望报告
- 海水鱼缸施工合同范本
- 偏瘫患者下肢康复训练
- 阳光房全套施工方案
- 铭记历史荣光共盼祖国统一!课件-2025-2026学年高二上学期台湾光复纪念日主题班会
- 海港机械设备维护及安全措施
- 血酮体测定方法
- 2025年全国《滴滴网约车》司机从业资格驾驶证考试题(附答案)
- 2025江苏南京玄武区招聘社区工作者和“两新”组织专职党务工作人员70人考试参考试题及答案解析
- DB32-T 1086-2022 高速公路建设项目档案管理规范
- 2025年兰州铁路局秋招笔试题目
评论
0/150
提交评论