毕业论文范文——联网卡牌收集养成类游戏“兔子妹子”实际应用设计模式场景.doc

上传人:滴答 文档编号:1255204 上传时间:2019-01-19 格式:DOC 页数:20 大小:460.42KB
下载 相关 举报
毕业论文范文——联网卡牌收集养成类游戏“兔子妹子”实际应用设计模式场景.doc_第1页
第1页 / 共20页
毕业论文范文——联网卡牌收集养成类游戏“兔子妹子”实际应用设计模式场景.doc_第2页
第2页 / 共20页
毕业论文范文——联网卡牌收集养成类游戏“兔子妹子”实际应用设计模式场景.doc_第3页
第3页 / 共20页
毕业论文范文——联网卡牌收集养成类游戏“兔子妹子”实际应用设计模式场景.doc_第4页
第4页 / 共20页
毕业论文范文——联网卡牌收集养成类游戏“兔子妹子”实际应用设计模式场景.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、摘要:“兔子妹子”游戏是时下流行的联网单机模式下的卡牌收集养成类游戏,其对于数据的依赖以及游戏结构的复杂性,使得整个游戏项目的架构设计显得尤为重要。设计模式是面向对象的软件设计与实现的关键技术,是一套被反复使用,多数人知晓的,代码设计经验总结。使用设计模式,是为了让代码更容易被他人所理解,保证代码的可靠性的同时提高代码重用率。较好的理解设计模式以及建立良好的设计模式是应用设计模式的前提。本文章主要概述设计模式的一般性表现,以及以联网卡牌收集养成类游戏“兔子妹子”项目为实例,讲述当中实际应用与实现到的设计模式和设计模式的应用场景。关键词:设计模式 代码复用 面向对象 C+IABSTRACT “R

2、abbit sister“ game is to collect cards to develop games popular networking stand-alone mode, its dependence on the data structure and the complexity of the game, making the architecture design of the whole project is very important game.Design patterns are object-oriented software design and key tec

3、hnologies, is a being repeated use, most people know, the code design Experience. Use of design patterns, in order to make the code easier to understand others, to ensure the reliability of the code while improving code reuse. Better understanding of design patterns and design patterns is to establi

4、sh a good premise application design patterns.The article outlines the general performance of the design patterns, as well as networking cards collected develop games “Rabbit sister“ project as an example, tells them to practical application and implementation of design patterns and design patterns

5、scenarios.Keywords: Design patterns code reuse C+ object-orientedII目录目录 .III1.绪论 .IV1.1 开发环境 .IV1.2 开发语言介绍 .IV1.3 开发框架介绍 .IV2.游戏介绍与为何使用设计模式 .V2.1 游戏介绍 .V2.2 为何使用设计模式 .V2.3 设计模式的一些使用原则 .VI3.设计模式分类 .VII3.1 创建型设计模式 .VII3.2 结构型设计模式 .VIII3.3 行为型设计模式 .VIII3.4 如何选择设计模式 .VIII4. 设计模式在“兔子妹子”游戏中的应用 .IX4.1 单例模式

6、在“兔子妹子”游戏当中的应用 .IX4.2 状态设计模式在“兔子妹子”游戏中的应用 .X4.3 Observer 观察者模式在 “兔子妹子”游戏当中的应用 .XII4.4 二段构建模式在“兔子妹子”游戏当中的应用 .XIV4.5 外观模式在“兔子妹子”游戏项目当中的应用 .XV4.6 管理者模式在“兔子妹子”游戏项目当中的应用 .XVI5. 总结 .XVIII参考文献 .XIX致谢 .XXIII1.绪论1.1 开发环境开发语言:C+ , php开发平台:visual studio C+ 2012 cocos2dx 3.0 Yii 框架操作系统:Windows 71.2 开发语言介绍本游戏的开发

7、语言是 C+,C+是最为可操作性最强的面向对象语言,他的优势主要体现在以下 3 点:效率高。C+继承了 C 语言可直接操作内存的特点,能使用大量堆区的空间。面向对象,C+的多态特性是其他程序语言所不具有的,它复杂搞笑但十分考验程序员的智慧与经验。多线程,C+的优秀的多线程实现,能够大幅度提高程序的运行效率,特别是在多核 CPU 盛行的今天,显得尤为重要。1.3 开发框架介绍Cocos2d-x 是 MIT 许可证下发布的开源游戏引擎,游戏开发快速、简易、功能强大。Cocos2d-x 核心优势在于允许开发人员利用 C+、Lua 及 Javascript来进行跨平台部署,覆盖平台包括 iOS、And

8、roid、 Windows Phone、黑莓(BlackBerry )及 Tizen 等等,省事省力省成本。由于 Cocos2d-x 的跨平台特性,以及提供极其强大的开发社区支持,并且该引擎成功的作品有如小鸟爆破、我叫 MT等例子,并且支持 C+语言开发,所以是我首选该引擎开发游戏的原因。IV2.游戏介绍与为何使用设计模式2.1 游戏介绍“兔子妹子”是联网单机型卡牌养成召唤类游戏,玩家可以通过在副本收集不同的卡牌角色进行养成,然后作为“兔子”角色的拉拉队声援战斗,游戏的战斗方式通过弹射“兔子”进行轨道弹射来攻击目标,并最终击败所有怪物过关。游戏的玩法轻松悠闲,乐趣众多。以下为游戏战斗截图:图表

9、 2-1-1 开始界面 图表 2-1-2 战斗界面2.2 为何使用设计模式“兔子妹子”游戏实现功能较为复杂,数据量庞大,界面切换多,而且还需要考虑到后续版本的更新。所以如果不进行有效的项目设计,游戏开发思路不清晰,则很大可能会造成项目的开发中途蹦掉,或者缺乏可更新性。以下是思维导图数据库结构显示的其中一个数据列表:V图表 2-2-1 数据库设计图基于游戏的复杂体系原因,为了让程序具有健壮性与可扩展性,所以必须要认真学习理解并使用设计模式的思想去开发此游戏,也是为了强逼自己更进一步写出更优质的可重用率高的代码。因为以往的设计较少的程序编写,往往在开发一个作品的后期总是会做越来越多的重复复制粘贴工

10、作,这些痛苦的经历与教训时刻提醒着自己必须学会用设计的思想去编写程序。2.3 设计模式的一些使用原则在学习应用设计模式的过程中,我们更应该理解设计模式当中所运用到的设计原则,模式是死的,设计的思想是活的,只有理解并掌握这些前人总结而出的设计原则,才能更好更恰当的运用设计模式去开发我们的程序。1 单一职责原则:就是对于一个类而言,就应该有且仅有一个引起它变VI化的原因。如在“兔子妹子”游戏当中,如何表示一个可弹射的 3d 兔子对象。那么我们就不应该把兔子的弹射算法,以及兔子模型动作显示等算法以及显示渲染部分写成一个类,而应该是把兔子类分成一个动作算法类,一个动画类,将功能单一化再根据需求组装。2

11、 开放-封闭原则:程序实体(类,函数等等),应该是可以扩展但不可以修改的。简单的例子就是,我们在使用引擎开发“兔子妹子”游戏的时候,实现一个游戏任务版功能,而引擎提供的 Sprite 类只提供显示功能,而任务版上还有各种数据文字需要显示,这时我们就应该继承这个 Sprite 类,在它的显示继承上,再实现文本功能的扩展添加。而不是修改 Sprite 类。3里氏代换原则:子类必须能够替换成它的基类。即是说,一个实例对象如果使用的是一个父类的话,那么一定适合于其子类,把程序里的父类都替换成它的子类,程序的行为不会发生变化。我们还可以参考下两个经典的案例来理解一下这个原则“正方形不是长方形”和“鸵鸟不

12、是鸟”。4依赖倒转原则:抽象不应该依赖细节,细节应该依赖于抽象,高层模块不应该依赖于底层模块,都应该依赖于抽象。如在我们“兔子妹子“游戏当中,最常用到的 DataRead 类,这个类已经将数据的读取与解析功能封装成函数,这些代码即使在我们做新项目的时候,也可以重复使用。3.设计模式分类3.1 创建型设计模式对类的实例化过程的抽象。一些系统在创建对象时,需要动态地决定怎样创建对像,创建哪些对象,以及如何组合和表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。包含类的创建模式和对象的创建模式。VII3.2 结构型设计模式描述如何将类或对象结合在一起形成更大的结构。分为类的结构模式和对象的结

13、构模式。类的结构模式使用继承把类,接口等组合在一起,以形成更大的结构。类的结构模式是静态的。对象的结构模式描述怎样把各种不同类型的对象组合在一起,以实现新的功能的方法。对象的结构模式是动态的。3.3 行为型设计模式对在不同的对象之间划分责任和算法的抽象化。不仅仅是关于类和对象的,并是关于他们之间的相互作用。类的行为模式使用继承关系在几个类之间分配行为。对象的行为模式则使用对象的聚合来分配行为。3.4 如何选择设计模式使用设计模式能给程序设计人员带来很多好处,而要得到这样的好处,需要根据实际情况,进行正确的模式选择。在不了解模式的情况下不要试图去运用它们。我们要做的首先是扩大自己的知识面,并采用

14、从抽象到具体的学习方式去理解它们。当我们理解模式的不同实现越多,则我们越会发现它们之间实现的相似之处,都是基于 1.3 设计原则 的思想去设计并实现的。而当我们明白了他们之间的共同点(面向抽象编程),则其他模式学习起来事半功倍,只是结构上的差异不同。下面我们通过对已有的模式选择方法加以总结,在选择模式时可以遵循以下的步骤: 1理解需求:设计需求是所有模式选择的基础,通过对需求的分析,细分每个需求内容,对应搜索已有的模式,是否有符合需求的设计。2研究模式组内关系:需求分析得出的模式可能不只一个,而是多个,就叫模式组。再而分析模式组内每个模式之间的差别,负责实现的场景功能,再VIII而进行综合应用

15、。3考虑设计模式是如何解决设计需求。4. 设计模式在“兔子妹子”游戏中的应用通过利用设计模式的思想指导游戏项目的架构设计,从这段时间的开发经历来看,由于初步应用了设计模式的思想实现程序,大幅减少了以前由于经验不足所造成的在程序开发后期,越来越多出现复制粘贴现象,以及程序结构混乱,“散弹式”改一点而影响全局的问题。在使用了设计模式的思想之后,不但提高了程序的可维护性,可复用性,同时还有对于游戏来说更重要的,提高了版本功能更新可扩展性。项目在有了设计架构之后,缩短了实际的开发周期。4.1 单例模式在“兔子妹子”游戏当中的应用项目需求:由于“兔子妹子”游戏是一款卡牌收集养成类单机联网游戏,游戏功能界

16、面较多,数量在二十多个,用户日常的卡牌养成需要通过大量频繁的界面切换来达到不同的养成目的。这 20 多个界面都有大量公用的界面组成部分,例如界面在进行网络信息加载过程的 Loading 这些带有屏蔽用户操作的层,同时这些界面的返回与切换按钮都是公用的,这些公用部分并不需要每个界面再独自创建,而是需要创建一个优先级最高的主界面类去管理这些界面的公共效果,这样处理便于增加和实现各种控制界面状态的效果,给用户优秀的操作反馈体验,同时公用交互部分则只需要通过设定不同的参数则可以实现界面的返回与切换功能。而由于界面数量过多,为了便于调用实现这些效果的方法,将采用单例模式解决此项问题,提高代码间调用的灵活

17、性。IX模式应用:单例模式属于创建型设计模式。保证一个类只能有一个实例,并提供一个全局的访问点。客户可以从一个众所周知的访问点访问它。一个类在静态方法中隐藏创建实例的操作。Cocs2dx 3.x 版本习惯上把这个成员函数叫做 getInstance(),它的返回值是唯一实例的指针。单例类的构造函数是私有的,这样就不能从别处创建该类的实例类。单例模式在“兔子妹子”游戏当中的主界面类实现代码为:/.hclass MainInterFace : public Layerprivate:MainInterFace(); /私有构造函数static MainInterFace* instance; /唯

18、一实例句柄public:static MainInterFace* getInstance(); /唯一实例化函数/.cppMainInterFace *MainInterFace:instance=NULL;MainInterFace* MainInterFace:getInstance()if (!instance)instance=new MainInterFace();instance-init();return instance;模式反例:由于单例模式创建的对象是属于全局对象,同时由于单例模式对象会提供单一接口便于访问与调用对象,这也容易造成一些初学者很容易滥用。例如对于一些相互间有交互的游戏界面,为了简化数据传输,就会使用单例模式维护一个界面。由于游戏界面都会有渲染,会占据大量内存。而一旦此种界面一直存在并增多得不到释放,将会造成内存不足,反而影响游戏的流畅体验。4.2 状态设计模式在“兔子妹子”游戏中的应用项目需求:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。