1、 本科毕业论文 (科研训练、毕业设计 ) 题 目: MMORPG UI 系统设计 探索 TinyXml&Lua 方案 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 指导教师(校外): 职称: 年 月MMORPG UI 系统设计 探索 TinyXml&Lua 方案 摘要 本文通过对 GUI 系统的探索,开始 GUI 设计之旅。首先,我将说明 GUI 系统是重要性和地位,其次,我将描述一个完整的 GUI 系统应该拥有的能力。接下来,我将仔细地分析如何满足 GUI 系统的能力要求,以及选择哪些技术来实现它。这时,我将着重介绍 TinyXM
2、L 和 LUA能做什么?怎么做?并根据 GUI 系统,把它们的实际应用设计出来。最重要的部分是事件管理和 GUI 控件层次结构的设计。我将花比较多的精力来阐述它们的设计思想,并且提供一个可行的方案。 最后,展示这样设计思想在真实项目中的表现。 关键词 游戏 GUI Lua TinyXMLAbstract Based on the GUI system exploration, we are on the way of GUI design journey. First of all, I will describe the importance of GUI system and status
3、 it takes. Second, I will describe what ability a complete GUI system should have. Followed, I will carefully analyze how to meet capacity demand of the GUI system, and choose a technology to achieve it. At this time, I will focus on what TinyXML and LUA can do and how to do. And in accordance with
4、GUI system, design the practical application of them. The most important part is the event management and designs the hierarchical structure of GUI control. I will spend more energy to elaborate their design ideas, and provide a viable option. Finally, I will display of such design ideas in a real p
5、roject. Keywords Game GUI Lua TinyXML目录 第一章 引言 . 1 第二章 系统的总体设计 . 3 2.1 系统需求 . 3 2.2 系统的环境 . 4 2.3 系统的基本设计概念和处理流程 . 4 2.3.1 设计概念 . 4 2.3.2 处理流程 . 5 2.4 系统结构 . 6 2.4.1 设计原则 . 6 2.4.2 用例图 . 6 2.4.3 静态类图 . 7 2.4.4 时序图 . 8 2.5 技术简介 4. 8 2.5.1 TinyXML . 9 2.5.2 Lua . 10 2.5.3 C+ . 11 第三章 系统的详细设计 . 13 3.1
6、CEGUI 和 WXWIDGETS 总览 . 13 3.1.1 简介 . 13 3.1.2 通用技术和设 计艺术 . 14 3.2 TinyXML 解析器 . 15 3.2.1 功能 . 15 3.2.2 优点与缺陷 . 15 3.3.3 与 GUI 的结合 . 15 3.3 XML 格式定义 . 16 3.3.1 从功能需求定义格式 . 16 3.3.2 争议 . 17 3.4 Lua 脚本工具 . 18 3.4.1 功能 . 18 3.4.2 优点与缺陷 . 18 3.4.3 与 GUI 的结合 . 19 3.5 事件注册 . 20 3.5.1 消息机制 . 20 3.5.2 从程序到脚本
7、 . 22 3.5.3 从脚本到程序 . 223.5.4 事件管理 . 24 3.6 GUI 类详细设计 . 25 3.6.4 GUI资源类设计 . 25 3.6.5 GUI基类设计 . 26 3.6.6 GUI管理类设计 . 27 3.6.7 GUIWINDOW 层设计 . 28 3.6.8 GUICONTROL 层设计 . 29 第四章 系统的运行结果 . 33 第五章 结束语 . 36 致谢 . 37 参考文献 . 38 附录 . 39 1 第一章 引言 关于 MMORPG 中的 GUI,有这么一句令人深思的话做得好的 GUI,让用户感觉不到它的存在,一旦游戏出问题了,所有的矛头齐齐地指
8、向 GUI。说得很贴切! 正如我们的电脑,你很少感觉到键盘鼠标的存在因为它们正如你所愿地工作着,一旦用得不顺 心了,第一个成为借口和承受你暴力的很可能就是键盘鼠标了。是不是想起你在玩某个游戏的时候常常报怨的话来,“我明明点了那个技能”,“鼠标有点飘”,“键盘不灵敏”, 什么是 GUI? GUI,是英文 Graphic User Interface(图形用户界面 )的简称。 当前对 软件设计 一般 分为两个部分:编码设计与 UI 设计。 编码设计就是所谓的写程序,UI 设计被认为是美术的界面设计。这是对 GUI 认识不够充分而草草下的结论! GUI 从字面上看是用户与界面 两 个组成部分,但实际
9、上还包括用户与界面之间的交互关系。 这里,交互关系 ,是 GUI 设计的重中之重。一个好的 GUI 不但有美观的界面给人带来合适的视觉享受,拉近人与软件的距离,同时,高性能和人性化的操作设计,大大提高软件的上手度和用户的工作效率,让用户感觉到使用这款软件是在享受而不是艰难的入门和失望的等待。 GUI 是一个完整的软件部分,它也包括编码设计和美术设计。 所以界面设计要和用户研究紧密结合,是一个不断为最终用户设计满意视觉效果 和人性化操作 的过程。 本文中,我将主要针对当前日益流行的网络游戏,从设计层面展开对 GUI 的剖析。在游戏中 GUI 被实例化为一个个的操作界面,控件。如:游戏登 录界面,
10、角色创建界面,游戏主界面(这里面可以包括:人物属性界面,技能界面,天赋界面,聊天界面)。 GUI 在游戏代码中占有相当大的比例(大于 30%),一款优秀的 GUI 系统所包含的内容之多,设计之精辟,只有深入学习,长期工作的程序员才能尽数体会。 GUI 正是处于这么一个重要而又尴尬的位置出问题时,大家才会想起你。同时它又是用户与系统之间最直接,交互最频繁的接口。在游戏研发人员中,甚至有“ GUI 决定一款游戏的档次”的说话。且不去深究说这话的人是不是们站在某个特殊的立场,从游戏引擎逐2 步把 GUI 归入 其重要组成 部 分 ,业内各种优秀的 GUI 库的普及,我们可以嗅到一场 GUI 风暴 已
11、经到来 。 3 第二章 系统的总体设计 2.1 系统 需求 输入:用户操作(正确操作和错误操作),具体可以分为 1. 键盘输入 2. 鼠标输入 3. 游戏手杆输入(可选) 4. 语音输入(高级) 5. 图像输入(高级) 输出:响应用户操作 E.G. 1控制角色行走 2施放技能 3玩家交互 4弹出相应界面 5等等 GUI 系统的需求是什么?概括地说:满足用户需求,实现游戏功能。 先不说不同用户有不同的需求,做不同的游戏(即使类型相似的游戏)对 GUI 实现游戏功能的需求也不尽相同。作为一个第三方 通 用库,必须具有很好的扩展性。至于跨平台的移植性,当前不做考虑。 为了实现通用性,要求 GUI 系
12、统具有相对的抽象;为了实现易扩展性,要求 GUI 系统实4 现一定的具体功能。在流行的 GUI 系统中,通常将 GUI 系统分事件和 UI 两大部分,其中,UI 实现到窗口,控件层次。我也将采用这种分层方式。 对应需求: GUI 系统要求事件管理与显示管理分开处理 UI 层次要求以窗口为容器的基本单位,在窗口下实现通用的控件,如:按钮 (Button),文字 (Text),输入框( Edit) 2.2 系统的环境 Microsoft Windows XP Professional Service Pack 2 Microsoft DirectX 9.0 SDK Update (February
13、 2005) Microsoft Visual Studio .NET 2003 Lua-5.1 TinyXML_2_5_2 2.3 系统的基本设计概念和处理流程 2.3.1 设计概念 1数据与操作分离 数据与操作分离的好处在于,数据可以独立与操作之外,灵活地进行各种扩展或筛选; 5 操作可以忽略具 体的数据类型、结构,针对抽象级别的数据进行操作,而不必修改算法去适应不同的数据。 其次,这种分离可以让我们对数据管理和操作管理的设计各司其职。对于作初始化的数据,可以在初始化后立即释放,以达到节约内在的目的。 2统一的处理过程 统一的处理过程是指对于同一层次的控件(甚至不同层次的控件),我们可以实现统一的处理过程,从而实现对未知类型处理和批处理的可能。 2.3.2 处理流程 如:图 2 1 游戏流程 游 戏 初 始 化游 戏 主 循 环G U I触 发 器 其 它是 否 结 束是否图 2 1 游戏流程 GUI 的生命周期存在于游 戏的整个生命同期中,在游戏的每次“心跳”即一次游戏循环,通常以帧 /秒作为基本单位, GUI 将进入它的消息处理队列,消息的分发由上到下一层层过滤、响应,结束这个过程, GUI 又进入下一次“心跳”的等待。开发者可以设置 GUI 自己的“心跳”周期,可以是游戏“心跳”的整数倍。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。