基于Cocos的大富翁游戏设计与开发毕业论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编号:( )字 号
本科生毕业设计(论文)
题目:
姓名: 学号:
班级:
二〇一三年六月
基于Cocos 的大富翁游戏设计与开发 xxxx xxxx 信科xx 班
xxx 大学
本科生毕业设计
姓名: xxx 学号:xxx
学院:计算机科学与技术学院
专业:信息安全
设计题目:基于Cocos的大富翁游戏设计与开发专题:
指导教师: xxx 职称:讲师
2015年6月xx
xxx大学毕业设计任务书
学院计算机学院专业年级信息安全11级姓名xxxx
任务下达日期:2013年 1 月18 日
毕业设计日期:2015年1月18 日至2015 年 6 月2 日
毕业设计题目:基于Cocos的大富翁游戏设计与开发
毕业设计专题题目:
毕业设计主要内容和要求:
研究内容:
(1)使用cocos2dx-3.2引擎作为底层,以c++语言为逻辑编程;
(2)实现精灵的移动、按钮创建和点击、游戏关卡选择、帧动画的播放,消息的注册,发送和监听,粒子效果的播放;
(3)开发系统的,模块组织结构清晰的游戏,尽量多地使用cocos2d api,以熟练掌握和运用。
工作要求:
在完成最低工作量:(1)设计与开发基于Cocos的大富翁游戏;(2)装订好的论文电子版设计论文;(3)程序源代码;(4)尽量完成该课程设计的其他要求及一些扩展功能。
院长签字:指导教师签字:
指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;
⑧是否同意答辩等):
成绩:指导教师签字:
年月日
评阅教师评语(①选题的意义;②基础理论及基本技能的掌握;③综合运用所学知识解决实际问题的能力;③工作量的大小;④取得的主要成果及创新点;⑤写作的规范程度;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等):
成绩:评阅教师签字:
年月日
xxxx大学毕业设计答辩及综合成绩
摘要
制作一个游戏,在技术上来说,首先需要的是一款好的引擎,为什么需要引擎呢?引擎提供的是基础的一些功能,一个游戏通过使用引擎的功能模块,来进行游戏的制作,游戏的本体部分则需要交给自己的逻辑来处理,一个游戏引擎,能决定游戏的制作,甚至能决定最终的品质,而很多大作宣传的噱头就是使用了某款引擎,可见一款游戏引擎对游戏制作的重要性。
对于PC端来说,虚幻4,寒霜3引擎是目前比较好的游戏引擎,使用其制作的游戏,效果也是相当惊人。
对于移动端来说,Unity 3D 和Cocos2d是目前最流行的两款引擎,在2014年以前,两款引擎各持半壁江山,主要原因是一个是3D引擎,一个是2D引擎,在游戏制作里中各有需要,两款引擎各出了无数优秀的作品,2014年之后,Unity 3D 开放2D模块,Cocos2d开放3D模块,弥补了自身的不足,使得开发人员着手一种引擎即能完成3D和2D 的开发工作,而Cocos2d相对于Unity 3D也是有很多的优势,它是一款开源的,活跃的,跨平台的,免费的面向所有开发人员的引擎,对于即将着手游戏行业的程序开发人员来说,是一款再好不过的上手引擎。
本文首先从整体上介绍了国内外Cocos技术的发展现状,然后丧心病狂地扯了足足40页,最后结束。
关键词:Cocos2d;C++11;API;单机版游戏;大富翁;
目录
1 绪论 (1)
1.1课题的目的和意义 (1)
1.2国内外发展现状 (1)
1.3课题主要的内容和功能介绍 (2)
1.3.1课题主要的内容 (3)
1.3.2坦克大战游戏功能介绍 (3)
1.4相关技术简介 (3)
1.4.1 HTML5标准简述及意义 (3)
1.4.2 JavaScript标准简述及意义 (5)
1.4.3 CSS标准简述及意义 ....................................................................................... 错误!未定义书签。
1.5开发工具 (6)
1.6本文章节安排 (7)
2 系统分析 (8)
2.1系统设计分析 (8)
2.2系统需求分析 (8)
2.2.1系统角色 (8)
2.2.2需求分析 (8)
2.2.3用例分析 ........................................................................................................... 错误!未定义书签。
3 系统概要设计 (9)
3.1系统总体功能设计 (9)
3.1.1程序功能模块分析 (9)
3.1.2地图读取以及修改 (9)
3.1.3游戏进行中的声音的控制分析 (9)
3.2程序流程 (9)
3.3各模块及对应的功能 (14)
4 系统详细设计 (15)
4.1数据管理模块设计 (15)
4.2地图功能模块 (18)
4.2.1读取地图 (18)
4.2.2绘制地图 (18)
4.2.3地图模块部分代码 (20)
4.3坦克模块的设计 (21)
4.3.1读取数据管理模块信息 (21)
4.3.2控制坦克 (21)
4.3.3坦克模块的部分实现代码 ............................................................................... 错误!未定义书签。
4.4炮弹模块的功能 (24)
4.4.1读取数据管理模块信息 (24)
4.4.2控制炮弹飞行 (30)
4.4.3炮弹模块的部分实现代码 (32)
4.5声音控制模块 (33)
4.6系统奖励模块功能 (33)
4.7游戏中动画界面模块功能 (33)
5 总结与展望 (34)
5.1总结 (34)
5.2展望 (34)
参考文献 .................................................................................................................................... 错误!未定义书签。
翻译部分 .................................................................................................................................... 错误!未定义书签。
英文原文 ............................................................................................................................ 错误!未定义书签。
中文译文 ............................................................................................................................ 错误!未定义书签。
致谢 . (35)
本科生毕业设计(论文)第1 页
1 绪论
1.1课题的目的和意义
由于2015年尚未结束,我先举几个例子分析一下2014年移动端游戏的现状:
1:2014年,中国移动游戏市场实际销售收入274.9亿元人民币,比2013年增长了144.6%。
2:2014年,中国移动游戏市场占有率达到24%,比2013年上升了10.5个百分点。
3:2014年,中国移动游戏用户数量约达3.58亿人,比2013年增长了15.1%。
近几年来,随着移动设备技术的精进,性能不断更新进步,移动游戏发展迅速,移动游戏市场成为整体市场增长最强动力。
在市场分析来看,在中国,2013年安卓平台上的游戏,cocos2d的使用率为26%,而ios的使用率为49%。
可见这款引擎的热手程度。
在当前市场火热,移动端游戏市场前景一片大好的前提下,去了解当下最为热门的一块游戏引擎,是非常明智的选择。
而对于游戏而言,选择一个好的游戏引擎也是其开发制作中最重要的一环,有一句话应正了这一点,一款游戏的品质不能单单看他使用的是什么引擎,但是一款好的游戏引擎却往往可以决定这款游戏的最终效果。
作为一款开源的跨平台游戏引擎,Cocos2d为无数手游开发者提供了稳定,方便,并且可靠的平台,据官方社区统计,到目前为止,基于cocos2dx开发的游戏,在全球范围内,已经至少有了一亿的安装量,在我的现在的公司,其中cocos2d的项目,《石器哪里走》,现在已经上线,正常盈利。
另外值得一说的是,Cocos2d可以使用c++,Lua,javascript,heml5,C#以及其余多种语言和平台进行开发,其对开发人员的友好性也可见一斑。
对于整个市场而言,人们越来越频繁地使用移动设备,而大多数使用移动设备的情况,都是在玩游戏,对于一个如此庞大的市场,研究和掌握一款移动设备上的游戏引擎,并且进行游戏开发,符合市场需求。
对于一个游戏开发者,游戏引擎是必须接触的一块内容,有了一个好的游戏引擎,游戏开发者可以直接调用引擎的接口,实现原本需要很复杂的代码才能实现的功能,所以有了游戏引擎,游戏开发者可以着手游戏逻辑的制作,而不用费力处理底层的效果实现,提高了开发效率。
对于我个人而言,使用一款游戏引擎,研究,开发,并完成一款属于自己的游戏有很大的研究学习价值,对于我个人也能较大提升自我价值,并且学习Cocos,不仅是研究该款引擎而已,同时能结束了解了Cocos引擎的结构,对今后的系统设计,模块设计,接口设计,甚至对C++语言本身的了解都能进一步加深。
1.2国内外发展现状
首先,以一句官方的介绍开头:Cocos2d-x是MIT许可证下发布的开源游戏引擎,游戏开发快速、简易、功能强大。
Cocos2d-x核心优势在于允许开发人员利用C++、Lua及Javascript 来进行跨平台部署,覆盖平台包括iOS、Android、Windows Phone、黑莓(BlackBerry)及Tizen 等等,省事省力省成本。
据不完全统计,cocos2d-x引擎在国内手机游戏开发使用的份额接近70%,而国外使用份额则是接近25%,在苹果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拥有包括Cocos2d,Cocos,Cococs2d-JS,Cocos Code IDE,Quick-Cocos2dx 在内的多种产品,其中包含各式各样的编辑器,满足可视化编辑UI和控件的功能,而就引擎而言,Cocos2d又派生出了许多不同的分支引擎,不同分支的引擎支持不同的目标平台并使用
1.3课题主要的内容和功能介绍
1.3.1课题主要的内容
课题的主要内容是使用Cocos2dx引擎实现大富翁类型的游戏,实现游戏的开始菜单、关卡选择、场景搭建、声音设置、用户信息存储与读取。
1.3.2大富翁游戏功能介绍
用户在安装大富翁apk后,即可开始大富翁游戏。
游戏支持与电脑AI进行对战。
游戏主要功能包括:
(1)开始菜单可开始游戏,读取记录,背景音乐的开关,退出游戏。
(2)玩家选择开始游戏后进入关卡选择界面,可选择3中关卡进行游戏。
(3)玩家点击GO按钮后可以随机行走1-6步,行走完毕依据当前地图可选择执行购买空地图,升级当前房屋和缴纳税金功能,当一方的金钱小于等于0则判断胜负,并结束游戏。
(4)游戏中出现的地图可以在资源里通过地图编辑器进行编辑。
(5)轮到玩家行走的时候点击保存按钮可以保存当前游戏状态,下次游戏可以通过主菜单进行读取。
1.4相关技术简介
1.4.1 Cocos2dx简述及意义
cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。
可以让你在创建自己的多平台游戏时节省很多的时间。
Cocos2d最初的版本是用python写的,之后被改成objectiveC,应用于iphone上,之后国内某人又根据该设计理念,将其改为C++版本cocos2dX,该版本可以在iphone,widnows,andriod 三个平台上运行.最新的版本是1.0.0,该引擎C++的版本还引入了lua脚本系统.cocos2d是完全开源的引擎,开发者可以任意使用该代码而不用公开源代码.cocos2d被广泛的使用,其中包括Zynga,南宫梦等知名游戏公司.Cocos2d不仅仅只是一个2D图形引擎库,他还提供了一些对游戏逻辑支持的系统.cocos2d提供了一个简单的声音引擎,支持播放mp3,wave,ogg等文件格式的音乐.cocos2d可以和物理引擎box2d配合使用,实现碰撞等物理效果.cocos2d引擎的结构清晰,文档和实例比较丰富.易学易用.
总结以下coco2d拥有以下优点:
易于使用:游戏开发者可以把关注焦点放在游戏设置本身,而不必消耗大量时间学习晦涩难懂的OpenGL ES,此外,Cocos2D还提供了大量的规范。
高效:Cocos2D基于OpenGL ES进行图形渲染,从而让移动设备的GPU性能发挥到极致。
灵活:方便扩展,易于集成第三方库。
免费:基于MIT协议的免费开源框架,用户可以放心使用,不用担心商业授权的问题。
社区支持:关心Cocos2D的开发者自发建立了多个社区组织,可以方便的查阅各类技术资料。
2.1 cocos2d 基本结构
在Cocos2d-x-3.x引擎中,采用节点树形结构来管理游戏对象,一个游戏可以划分为不同的场景,一个场景又可以分为不同的层,一个层又可以拥有任意个可见的游戏节点(即对象,游戏中基本上所有的类都派生于节点类Node)。
可以执行Action来修改游戏节点的属性,使其移动、旋转、放大、缩小等等。
每一个时刻都有一个场景在独立运行,通过切换不同的场景来完成一个游戏流程,游戏流程的管理由Director来执行.
(1)导演(Director)
一款游戏好比一部电影,只是游戏具有更强的交互性,不过它们的基本原理是一致的。
所以在Cocos2dx中把统筹游戏大局的类抽象为导演(Director),Director是整个cocos2dx引擎的核心,是整个游戏的导航仪,游戏中的一些常用操作就是由Director来控制的,比如OpenGL ES的初始化,场景的转换,游戏暂停继续的控制,世界坐标和GL坐标之间的切换,对节点(游戏元素)的控制等,还有一些游戏数据的保存调用,屏幕尺寸的获取等都要由Director 类来管理控制的。
因为Director是游戏项目的总导演,会经常调用进行一些控制,所以该Director利用了单件设计模式,也就是项目里取到的director都是同一个。
用getInstance() 方法取得Director的实例。
(2)场景(Scene)
Scene场景也是cocos2dx中必不可少的元素,游戏中通常我们需要构建不同的场景(至少一个),游戏里关卡、版块的切换也就是一个一个场景的切换,就像在电影中变换舞台和场地一样。
场景的一个重要的作用就是流程控制的作用,我们可以通过Director的一系列方法控制游戏中不同的场景的自由切换。
下面是Director控制场景的常用方法:
runWithScene( Scene *scene ) 启动游戏,并运行scene场景。
本方法在主程序第一次启动主场景的时候调用。
如果已有正在运行的场景则不能调用该方法;会调用
pushScene-->startAnimation。
pushScene( Scene *scene ) 将当前运行中的场景暂停并压入到代码执行场景栈中,再将传入的scene设置为当前运行场景,只有存在正在运行的场景时才调用该方法;
replaceScene( Scene *scene ) 直接使用传入的scene替换当前场景来切换画面,当前场景被释放。
这是切换场景时最常用的方法。
popScene() 释放当前场景,再从代码执行场景中弹出栈顶的场景,并将其设置为当前运行场景。
如果栈为空,直接结束应用。
和PushScene结对使用
end() 释放和终止执行场景,同时退出应用
pause() 暂停当前运行场景中的所有计时器和动作,场景仍然会显示在屏幕上
resume () 恢复当前运行场景的所有计时器和动作,场景仍然会显示在屏幕上同时场景是层的容器,包含了所有需要显示的游戏元素。
通常,当我们需要完成一个场景时候,会创建一个Scene的子类,并在子类中实现我们需要的功能。
比如,我们可以在子类的初始化中载入游戏资源,为场景添加层,启动音乐播放等等。
(3)层(Layer)
Layer是处理玩家事件响应的Node子类。
与场景不同,层通常包含的是直接在屏幕上呈现的内容,并且可以接受用户的输入事件,包括触摸,加速度计和键盘输入等。
我们需要在层中加入精灵,文本标签或者其他游戏元素,并设置游戏元素的属性,比如位置,方向和大小;设置游戏元素的动作等。
通常,层中的对象功能类似,耦合较紧,与层中游戏内容相关的逻辑代码也编写在层中,在组织好层后,只需要把层按照顺序添加到场景中就可以显示出来了。
要向场景添加层,我们可以使用addChild方法。
addChild( Node child ) addChild( Node child, int zOrder ) addChild( Node *child, int zOrder, int tag )
其中,Child参数就是节点。
对于场景而言,通常我们添加的节点就是层。
先添加的层会被置于后添加的层之下。
如果需要为它们指定先后次序,可以使用不同的zOrder值。
tag是元素的标识号码,如果为子节点设置了tag值,就可以在它的父节点中利用tag值就可以找到它了。
层可以包含任何Node作为子节点,包括Sprites(精灵), Labels(标签),甚至其他的Layer对象。
(4)精灵
Cocos2d中的精灵和其他游戏引擎中的精灵相似,它可以移动,旋转,缩放,执行动画,并接受其他转换。
Cocos2dx的Sprite由Texure,frame和animation组成,由openes负责渲染。
主要的类关系如下: 简单过程可描述为:使用Texture2D加载图片,可以用Texture2D生成对应的SpriteFrame(精灵帧),将SpriteFrame添加到Animation生成动画数据,用Animation生成Animate(就是最终的动画动作),最后用Sprite执行这个动作。
1.5开发工具
该项目需要多种软件和工具的支持,接下来介绍运用的主要工具以及该工具的作用。
(1)Python2.7:Cocos2d最初的版本是用python写的,现在创建新项目也需要通过Python来创建。
(2)tmx地图编辑器(tIDE Tile Map Editor):瓦片地图(Tile Map) 不但生成简单,并且可以灵活的用于Cocos2d-x引擎。
不论你的游戏是角色扮演游戏, 平台动作游戏或仿打砖块游戏,这些游戏地图可以使用开源的瓦片地图编辑器Tiled Map Editor生成并保存为TMX文件格式,被Cocos2d-x支持,可编辑瓦块,斜视地图和六边形地图。
(3)红孩儿工具箱:他用用于将多幅图片合成plist文件,同时也能将plist文件拆解成多张小图。
(4)Cocos2d-x-ParticleEditor:一个开源的例子编辑器,打开bin目录下的ParticleEditor.exe 开启工具,里面包含了粒子实例,我们可以从中选取部分粒子效果为我所用,也可以自己编辑效果,并且可以边修改右边的数据边浏览效果。
(5)Eclipse:Eclipse 是一个开放源代码的、基于Java的可扩展开发平台,在这个项目里,主要是用它移植项目到apk。
(6)Visual Studio 2013:微软公司推出的开发环境,Visual Studio 可以用来创建Windows 平台下的Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office 插件,在这个项目,我们用来完成整个项目的逻辑代码。
1.6本文章节安排
本文共分为五章,基本内容安排如下:
第一章绪论,阐述了课题的目的及意义,介绍了相关技术目前国内外的发展现状,概述了课题的主要内容及功能,之后又详略有序的介绍的相关技术和多款的开发工具。
第二章系统分析,主要是对该系统进行了需求分析和用例分析,对系统的总体结构进行了分析,对系统的功能模块进行了划分。
第三章系统概要设计,主要是对该系统的程序模块进行分析、地图读取及修改、游戏中的声音控制分析,之后给出了程序流程图,最后分析了实现该游戏的各个模块需要解决的问题,并提出了解决方案。
第四章系统详细设计,首先对该系统的服务端进行了设计分析,之后又对地图功能模块、坦克模块、炮弹模块、绘制画面等各个部分的具体实现进行了说明,然后给出了实现这些模块的部分关键代码。
最后一部分是总结与展望,总结了系统的优点与不足,并提出可进行扩展的功能设计,给出了下一步的研究方向。
2 系统分析
2.1系统设计分析
良好的用户体验对于每一种游戏来说都是非常重要的。
所以良好的用户体验需要做到以下几点:
(1)界面友好:游戏使用界面要做到一目了然,直观简洁,并且易于操作。
(2)使用流畅:要能够快速响应并处理相关信息。
(3)可扩展性:在满足了游戏设计时的基本功能要求之后,还要能够进一步扩展其附加或其他的功能。
(4)节省资源:无论任何时候,资源都必须尽可能的做到有效并高速利用,能够使得更加节省系统的资源,特别是对于游戏应用来说,要做到快速、准确的响应用户操作,就必须合理利用并配置有效资源,使资源利用最大化。
2.2系统需求分析
2.2.1系统角色
游戏玩家:可由玩家操作的角色。
对手:由AI操作的角色。
2.2.2需求分析
游戏类设计要能够提供友好的、便于用户操作的界面,同时能够接受用户的各项操作请求,并将这些请求转化为与之相对应的各项命令。
其功能需求主要包括以下几个方面:(1)开始菜单
用户能够通过菜单进行开始游戏,读取游戏,音乐设置,退出游戏的设定。
(2)背景音乐
在用户进行游戏的过程中,可以根据某个或某几个特定的操作播放出已设定好的相关的声音效果,同时可以播放一些背景音乐,避免了游戏过程中的单调乏味,可以使用户得到放松,丰富了游戏的功能,增加了游戏的可玩性。
(3)地图选择功能
用户能够自己选择想玩的地图。
(4)游戏主要玩法
玩家控制的角色,点击GO按钮后能进行随机1-6步的行走,在停下时能弹一个对话框,提示是否购买空地,如果该空地已经有自己的房子并且能升级,则弹出是否升级的对话框,如果自己房子等级已满,则可多行走一次,如果是对方的房子,则需缴纳费用。
3 系统概要设计
3.1系统总体功能设计
3.1.1程序功能模块分析
本游戏功能模块主要分为:
(1)菜单模块:主要游戏的主要设定。
(2)对话框模块,游戏中多次使用该模块,而且也是由独立的代码管理,所以单独出来,作为一个独立模块进行讲解。
(3)地图选择模块:主要负责用户的相关操作,游戏界面的绘制、相关地图的修改、实现相关数据的发送以及接受等功能。
(4)地图模块:主要的游戏场景,玩家操作人物进行游戏,以及保存游戏都在此模块。
(5)数据存储模块:使用json文件格式(cocos API)对游戏数据进行存储,读取时根据数据读取,重新布置场景。
3.1.2地图读取以及修改
游戏要能够比较容易地自主设计并可以自由的修改游戏界面上已经形成的游戏地图,同时还可以根据修改后的地图灵活的改变整个游戏的关卡多少和游戏的难易程度等。
3.1.3游戏进行中的声音的控制分析
必须根据游戏中不同的操作设计播放相关的声音片段。
游戏能够流畅、自如的播放出指定声音片段。
3.2程序流程
根据本游戏功能场景划分,游戏程序主要分为三个各自独立的场景。
(1)开始菜单
开始菜单为游戏打开时首先需要操作的部分,对于这部分的设计,采用传统单机游戏的设计:开始游戏,读取记录,背景音乐开关,退出游戏的模式,同时在可操作按键之外,还添加了一个LOGO和一个移动的彩虹精灵增加趣味。
该场景如图3.2所示。
图3.21 开始菜单设计流程图
(2)对话框模块:
图3.22 对话框设计流程图
(3)地图选择场景,该场景由一个可滑动的层和一个背景层组成,滑动层里又由3个精灵层组成,当滑动到一个位置并点击的时候,可以选择该地图进行游戏。
主要使用到的cocos2dx 的API有如下4个。
1:精灵容器:
添加3个图片精灵到精灵容器里,并设置其坐标(精灵容器长3个屏幕,高一个屏幕) 2:scrollview对象
将精灵容器添加到ScrollView对象中,并设置其属性,如是否可触摸,滑动方向,是否可弹性滑动,坐标,大小等。
3:自定义adjust_scroll_view方法,用来进行拖动后位置调整
若滑动距离超过设定值,则切换到下一张图,根据当前是第几张图片,来调整scrollview 的位置,从而实现位置的矫正。
4:Scene场景转换:TransitionFadeDown向下百叶窗式换场景
地图选择场景如图3.3
图3.3 地图选择场景流程图
(4)地图场景。
地图场景是游戏与玩家交互的最主要的部分。
采取的设计方法是设计一个地图基类,该基类拥有场景所具备的所有功能,然后游戏场景继承自该基类,通过读取TMX文件以及对数据的设定来决定每个地图的各个特点。
设计流程图如图3.4:
图3.4 场景模块
(2)数据存储模块。
该模块把两个角色的各种信息,以及建造区域的瓦块信息存入json文件中,每个地图都有各自的文件名,之后根据文件名进行区分读取。
具体格式如下表
4 系统详细设计
4.1菜单模块设计
4.1.1:背景
背景添加了两个精灵,一个是中间位置的大富翁LOGO,另一个是左上角左右移动的精灵。
背景其他部分填充为白色。
在该项目中,我用Photoshop编辑了3张移动的精灵,每次打开该场景,都会随机一张图片作为飘动模块,丰富细节。
bool start_menu::init()
{
...
//添加背景的若干个精灵
add_background_sprite();
...
return true;
}
相关API介绍:
1:Sprite::create(const std::string& filename) :创建精灵
2:Sprite::setPosition(const Vec2& pos):设置坐标
3:Sprite::setScale(float fScale):设置精灵比例
4:Sprite::setAnchorPoint(const Vec2& anchor):设置描点
5:Node::addChild(Node *child) :把对象添加到父节点
6:MoveBy::create(float duration, const Vec2& deltaPosition):移动
7:MoveBy::reverse():反向移动
8:Sequence::create(FiniteTimeAction *action1, ...):让多个动作按照前后顺序逐一执行
9:RepeatForever::create(ActionInterval *action):对目标动作进行永久性的重复运动
10:Action * Node::runAction(Action* action):精灵执行行动
4.1.2:按钮
bool start_menu::init()
{
...
//添加若干个菜单(按键)精灵
add_menu_sprites();。