毕业论文范文——基于Cocos的大富翁游戏设计与开发.doc

上传人:滴答 文档编号:1255039 上传时间:2019-01-19 格式:DOC 页数:44 大小:1.59MB
下载 相关 举报
毕业论文范文——基于Cocos的大富翁游戏设计与开发.doc_第1页
第1页 / 共44页
毕业论文范文——基于Cocos的大富翁游戏设计与开发.doc_第2页
第2页 / 共44页
毕业论文范文——基于Cocos的大富翁游戏设计与开发.doc_第3页
第3页 / 共44页
毕业论文范文——基于Cocos的大富翁游戏设计与开发.doc_第4页
第4页 / 共44页
毕业论文范文——基于Cocos的大富翁游戏设计与开发.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、编 号 : ( ) 字 号本 科 生 毕 业 设 计 ( 论 文 )题目: 姓名: 学号: 班级: 年 月基于 Cocos 的大富翁游戏设计与开发摘 要制作一个游戏,在技术上来说,首先需要的是一款好的引擎,为什么需要引擎呢?引擎提供的是基础的一些功能,一个游戏通过使用引擎的功能模块,来进行游戏的制作,游戏的本体部分则需要交给自己的逻辑来处理,一个游戏引擎,能决定游戏的制作,甚至能决定最终的品质,而很多大作宣传的噱头就是使用了某款引擎,可见一款游戏引擎对游戏制作的重要性。对于 PC 端来说,虚幻 4,寒霜 3 引擎是目前比较好的游戏引擎,使用其制作的游戏,效果也是相当惊人。对于移动端来说,Uni

2、ty 3D 和 Cocos2d 是目前最流行的两款引擎,在2014 年以前,两款引擎各持半壁江山,主要原因是一个是 3D 引擎,一个是 2D 引擎,在游戏制作里中各有需要,两款引擎各出了无数优秀的作品,2014 年之后,Unity 3D 开放 2D模块,Cocos2d 开放 3D 模块,弥补了自身的不足,使得开发人员着手一种引擎即能完成 3D和 2D 的开发工作,而 Cocos2d 相对于 Unity 3D 也是有很多的优势,它是一款开源的,活跃的,跨平台的,免费的面向所有开发人员的引擎,对于即将着手游戏行业的程序开发人员来说,是一款再好不过的上手引擎。本文首先从整体上介绍了国内外 Cocos

3、 技术的发展现状,然后丧心病狂地扯了足足 40页,最后结束。关键词:Cocos2d;C+11;API;单机版游戏;大富翁;目 录1 绪论 .11.1 课题的目的和意义 .11.2 国内外发展现状 .21.3 课题主要的内容和功能介绍 .31.3.1 课题主要的内容 .31.3.2 坦克大战游戏功能介绍 .31.4 相关技术简介 .41.4.1 HTML5 标准简述及意义 .41.4.2 JavaScript 标准简述及意义 .41.4.3 CSS 标准简述及意义 .51.5 开发工具 .61.6 本文章节安排 .72 系统分析 .82.1 系统设计分析 .82.2 系统需求分析 .82.2.1

4、 系统角色 .82.2.2 需求分析 .82.2.3 用例分析 .93 系统概要设计 .113.1 系统总体功能设计 .113.1.1 程序功能模块分析 .113.1.2 地图读取以及修改 .113.1.3 游戏进行中的声音的控制分析 .123.2 程序流程 .123.3 各模块及对应的功能 .144 系统详细设计 .164.1 数据管理模块设计 .164.2 地图功能模块 .174.2.1 读取地图 .174.2.2 绘制地图 .174.2.3 地图模块部分代码 .204.3 坦克模块的设计 .214.3.1 读取数据管理模块信息 .214.3.2 控制坦克 .214.3.3 坦克模块的部分

5、实现代码 .224.4 炮弹模块的功能 .244.4.1 读取数据管理模块信息 .244.4.2 控制炮弹飞行 .254.4.3 炮弹模块的部分实现代码 .254.5 声音控制模块 .284.6 系统奖励模块功能 .284.7 游戏中动画界面模块功能 .295 总结与展望 .325.1 总结 .325.2 展望 .32参考文献 .34翻译部分 .35英文原文 .35中文译文 .38致 谢 .41中国矿业大学本科生毕业设计(论文) 第 1 页1 绪论1.1 课题的目的和意义由于2015年尚未结束,我先举几个例子分析一下2014年移动端游戏的现状:1:2014年,中国移动游戏市场实际销售收入274

6、.9亿元人民币,比2013年增长了144.6。2:2014年,中国移动游戏市场占有率达到24,比2013年上升了10.5个百分点。3:2014年,中国移动游戏用户数量约达3.58亿人,比2013年增长了15.1。近几年来,随着移动设备技术的精进,性能不断更新进步,移动游戏发展迅速,移动游戏市场成为整体市场增长最强动力。在市场分析来看,在中国,2013年安卓平台上的游戏,cocos2d的使用率为26%,而ios的使用率为49%。可见这款引擎的热手程度。在当前市场火热,移动端游戏市场前景一片大好的前提下,去了解当下最为热门的一块游戏引擎,是非常明智的选择。而对于游戏而言,选择一个好的游戏引擎也是其

7、开发制作中最重要的一环,有一句话应正了这一点,一款游戏的品质不能单单看他使用的是什么引擎,但是一款好的游戏引擎却往往可以决定这款游戏的最终效果。作为一款开源的跨平台游戏引擎,Cocos2d为无数手游开发者提供了稳定,方便,并且可靠的平台,据官方社区统计,到目前为止,基于cocos2dx开发的游戏,在全球范围内,已经至少有了一亿的安装量,在我的现在的公司,其中cocos2d的项目,石器哪里走,现在已经上线,正常盈利。另外值得一说的是,Cocos2d可以使用c+,Lua ,javascript ,heml5,C#以及其余多种语言和平台进行开发,其对开发人员的友好性也可见一斑。对于整个市场而言,人们

8、越来越频繁地使用移动设备,而大多数使用移动设备的情况,都是在玩游戏,对于一个如此庞大的市场,研究和掌握一款移动设备上的游戏引擎,并且进行游戏开发,符合市场需求。对于一个游戏开发者,游戏引擎是必须接触的一块内容,有了一个好的游戏引擎,游戏开发者可以直接调用引擎的接口,实现原本需要很复杂的代码才能实现的功能,所以有了游戏引擎,游戏开发者可以着手游戏逻辑的制作,而不用费力处理底层的效果实现,提高了开发效率。对于我个人而言,使用一款游戏引擎,研究,开发,并完成一款属于自己的游戏有很大的研究学习价值,对于我个人也能较大提升自我价值,并且学习Cocos,不仅是研究该款引擎而已,同时能结束了解了Cocos引

9、擎的结构,对今后的系统设计,模块设计,接口设计,甚至对C+语言本身的了解都能进一步加深。中国矿业大学本科生毕业设计(论文) 第 2 页1.2 国内外发展现状首先,以一句官方的介绍开头:Cocos2d-x是MIT许可证下发布的开源游戏引擎,游戏开发快速、简易、功能强大。Cocos2d-x核心优势在于允许开发人员利用C+、Lua及Javascript来进行跨平台部署,覆盖平台包括iOS 、Android、Windows Phone、黑莓(BlackBerry )及Tizen等等,省事省力省成本。据不完全统计,cocos2d-x引擎在国内手机游戏开发使用的份额接近70%,而国外使用份额则是接近25%

10、,在苹果APP 排行榜top10里面,有7个都是用cocos2d-x引擎开发的。Cocos2d-x用户不仅包括个人开发者和游戏开发爱好者,还包括许多知名大公司如Zynga、 Wooga、Gamevil 、Glu、GREE 、Konami、 TinyCo、HandyGames、IGG及Disney Mobile等。截止2013年9月,全球基于Cocos2d-x引擎的游戏下载量高达逾15亿,其中许多还占据苹果应用商店(AppStore)和谷歌应用商店(Google Play)排行榜。同时许多公司如触控、谷歌、微软、ARM、英特尔及黑莓的工程师在Cocos2d-x领域也非常活跃。目前,Cocos拥有

11、包括Cocos2d,Cocos,Cococs2d-JS ,Cocos Code IDE,Quick-Cocos2dx在内的多种产品,其中包含各式各样的编辑器,满足可视化编辑UI和控件的功能,而就引擎而言,Cocos2d又派生出了许多不同的分支引擎,不同分支的引擎支持不同的目标平台并使用不同的编程语言。主要分支可以参考下表:分支引擎 编程语言 平台Cocos2d Python 桌面操作系统Cocos2d-iphone Objective-C, JavaScript iOSCocos2d-x C+, Lua, JavaScript 参见支持平台和编程语言部分Cocos2d-html5 JavaSc

12、ript 支持HTML5的浏览器ShinyCocos Ruby iOSCocos2d-windows C+ Windows XP/7Cocos2d-android Java AndroidCocos2d-android-1 Java AndroidCocos2d-xna C# Microsoft and MonoGame platformsCocos2d-javascript JavaScript 支持HTML5的浏览器Cocos-net C# Mono-supported 平台Cocos3d Objective-C iOS中国矿业大学本科生毕业设计(论文) 第 3 页1.3课题主要的内容和功

13、能介绍1.3.1 课题主要的内容课题的主要内容是使用Cocos2dx引擎实现大富翁类型的游戏,实现游戏的开始菜单、关卡选择、场景搭建、声音设置、用户信息存储与读取。1.3.2 大富翁游戏功能介绍用户在安装大富翁apk 后,即可开始大富翁游戏。游戏支持与电脑AI 进行对战。游戏主要功能包括:(1)开始菜单可开始游戏,读取记录,背景音乐的开关,退出游戏。(2)玩家选择开始游戏后进入关卡选择界面,可选择3中关卡进行游戏。(3)玩家点击GO按钮后可以随机行走1-6步,行走完毕依据当前地图可选择执行购买空地图,升级当前房屋和缴纳税金功能,当一方的金钱小于等于0则判断胜负,并结束游戏。(4)游戏中出现的地

14、图可以在资源里通过地图编辑器进行编辑。(5)轮到玩家行走的时候点击保存按钮可以保存当前游戏状态,下次游戏可以通过主菜单进行读取。1.4 相关技术简介1.4.1 Cocos2dx 简述及意义cocos2d 是一个基于 MIT 协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。Cocos2d 最初的版本是用 python 写的,之后被改成 objectiveC,应用于 iphone 上,之后国内某人又根据该设计理念,将其改为 C+版本 cocos2dX,该版本可以在 iphone,widnows,andriod三个平台上运行.最新的版本是

15、 1.0.0,该引擎 C+的版本还引入了 lua 脚本系统.cocos2d 是完全开源的引擎,开发者可以任意使用该代码而不用公开源代码.cocos2d 被广泛的使用,其中包括 Zynga,南宫梦等知名游戏公司.Cocos2d 不仅仅只是一个 2D 图形引擎库,他还提供了一些对游戏逻辑支持的系统.cocos2d 提供了一个简单的声音引擎 ,支持播放 mp3,wave,ogg 等文件格式的音乐.cocos2d 可以和物理引擎 box2d 配合使用 ,实现碰撞等物理效果.cocos2d 引擎的结构清晰,文档和实例比较丰富.易学易用.总结以下 coco2d 拥有以下优点:易于使用:游戏开发者可以把关注

16、焦点放在游戏设置本身,而不必消耗大量时间学习晦涩难懂的 OpenGL ES,此外,Cocos2D 还提供了大量的规范。高效:Cocos2D 基于 OpenGL ES 进行图形渲染,从而让移动设备的 GPU 性能发挥到极致。中国矿业大学本科生毕业设计(论文) 第 4 页灵活:方便扩展,易于集成第三方库。免费:基于 MIT 协议的免费开源框架,用户可以放心使用,不用担心商业授权的问题。社区支持:关心 Cocos2D 的开发者自发建立了多个社区组织,可以方便的查阅各类技术资料。中国矿业大学本科生毕业设计(论文) 第 5 页2.1 cocos2d 基本结构在 Cocos2d-x-3.x 引擎中,采用节

17、点树形结构来管理游戏对象,一个游戏可以划分为不同的场景,一个场景又可以分为不同的层,一个层又可以拥有任意个可见的游戏节点(即对象,游戏中基本上所有的类都派生于节点类 Node)。可以执行 Action 来修改游戏节点的属性,使其移动、旋转、放大、缩小等等。每一个时刻都有一个场景在独立运行,通过切换不同的场景来完成一个游戏流程,游戏流程的管理由 Director 来执行.(1)导演(Director)一款游戏好比一部电影,只是游戏具有更强的交互性,不过它们的基本原理是一致的。所以在 Cocos2dx 中把统筹游戏大局的类抽象为导演(Director),Director 是整个 cocos2dx

18、引擎的核心,是整个游戏的导航仪,游戏中的一些常用操作就是由 Director 来控制的,比如OpenGL ES 的初始化,场景的转换,游戏暂停继续的控制,世界坐标和 GL 坐标之间的切换,对节点(游戏元素)的控制等,还有一些游戏数据的保存调用,屏幕尺寸的获取等都要由Director 类来管理控制的。因为 Director 是游戏项目的总导演,会经常调用进行一些控制,所以该 Director 利用了单件设计模式,也就是项目里取到的 director 都是同一个。用 getInstance() 方法取得 Director 的实例。(2)场景(Scene)Scene 场景也是 cocos2dx 中必

19、不可少的元素,游戏中通常我们需要构建不同的场景(至少一个),游戏里关卡、版块的切换也就是一个一个场景的切换,就像在电影中变换舞台和场地一样。场景的一个重要的作用就是流程控制的作用,我们可以通过 Director 的一系列方法控制游戏中不同的场景的自由切换。下面是 Director 控制场景的常用方法:runWithScene( Scene *scene ) 启动游戏,并运行 scene 场景。本方法在主程序第一次启动主场景的时候调用。如果已有正在运行的场景则不能调用该方法;会调用 pushScenestartAnimation。pushScene( Scene *scene ) 将当前运行中的

20、场景暂停并压入到代码执行场景栈中,再将传入的 scene 设置为当前运行场景,只有存在正在运行的场景时才调用该方法;replaceScene( Scene *scene ) 直接使用传入的 scene 替换当前场景来切换画面,当前场景被释放。这是切换场景时最常用的方法。popScene() 释放当前场景,再从代码执行场景中弹出栈顶的场景,并将其设置为当前运行场景。如果栈为空,直接结束应用。和 PushScene 结对使用end() 释放和终止执行场景,同时退出应用pause() 暂停当前运行场景中的所有计时器和动作,场景仍然会显示在屏幕上resume () 恢复当前运行场景的所有计时器和动作,

21、场景仍然会显示在屏幕上同时场景是层的容器,包含了所有需要显示的游戏元素。通常,当我们需要完成一个场景时候,会创建一个Scene 的子类,并在子类中实现我们需要的功能。比如,我们可以在子类的初始化中载入游戏资源,为场景添加层,启动音乐播放等等。中国矿业大学本科生毕业设计(论文) 第 6 页(3)层(Layer)Layer是处理玩家事件响应的Node 子类。与场景不同,层通常包含的是直接在屏幕上呈现的内容,并且可以接受用户的输入事件,包括触摸,加速度计和键盘输入等。我们需要在层中加入精灵,文本标签或者其他游戏元素,并设置游戏元素的属性,比如位置,方向和大小;设置游戏元素的动作等。通常,层中的对象功

22、能类似,耦合较紧,与层中游戏内容相关的逻辑代码也编写在层中,在组织好层后,只需要把层按照顺序添加到场景中就可以显示出来了。要向场景添加层,我们可以使用addChild方法。addChild( Node child ) addChild( Node child, int zOrder ) addChild( Node *child, int zOrder, int tag )其中,Child参数就是节点。对于场景而言,通常我们添加的节点就是层。先添加的层会被置于后添加的层之下。如果需要为它们指定先后次序,可以使用不同的zOrder值。tag是元素的标识号码,如果为子节点设置了tag值,就可以在它

23、的父节点中利用tag值就可以找到它了。层可以包含任何Node作为子节点,包括Sprites( 精灵), Labels(标签),甚至其他的Layer对象。(4)精灵Cocos2d中的精灵和其他游戏引擎中的精灵相似,它可以移动,旋转,缩放,执行动画,并接受其他转换。Cocos2dx的Sprite由Texure,frame和animation 组成,由openes 负责渲染。主要的类关系如下: 简单过程可描述为:使用 Texture2D加载图片,可以用Texture2D生成对应的SpriteFrame(精灵帧),将SpriteFrame 添加到Animation 生成动画数据,用Animation生

24、成 Animate(就是最终的动画动作),最后用Sprite执行这个动作。1.5 开发工具该项目需要多种软件和工具的支持,接下来介绍运用的主要工具以及该工具的作用。(1)Python2.7 :Cocos2d最初的版本是用python写的,现在创建新项目也需要通过Python来创建。(2)tmx地图编辑器(tIDE Tile Map Editor):瓦片地图 (Tile Map) 不但生成简单,并且可以灵活的用于Cocos2d-x引擎。不论你的游戏是角色扮演游戏, 平台动作游戏或仿打砖块游戏,这些游戏地图可以使用开源的瓦片地图编辑器Tiled Map Editor生成并保存为TMX 文件格式,被

25、Cocos2d-x支持,可编辑瓦块,斜视地图和六边形地图。(3)红孩儿工具箱:他用用于将多幅图片合成plist文件,同时也能将plist文件拆解成多张小图。(4)Cocos2d-x-ParticleEditor:一个开源的例子编辑器,打开bin目录下的ParticleEditor.exe 开启工具,里面包含了粒子实例,我们可以从中选取部分粒子效果为我所用,也可以自己编辑效果,并且可以边修改右边的数据边浏览效果。(5)Eclipse:Eclipse 是一个开放源代码的、基于Java的可扩展开发平台,在这个项目里,主要是用它移植项目到apk。(6)Visual Studio 2013:微软公司推出的开发环境, Visual Studio 可以用来创建

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

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

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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