




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计说明书标 题: 拼图游戏设计与开发 学生姓名: 系 部: 信息工程系 专 业: 软件技术 班 级: 动漫1201 指导教师: 湖南汽车工程职业学院教务处制21目录1 引言31.1游戏的开发背景31.2游戏实现的意义31.3本章小结42 系统可行性52.1技术路线选择52.2技术可行性分析62.3系统的整体进度安排62.4运行环境62.5本章小结73 系统设计83.1系统结构化分析83.2系统设计方案拟定93.3系统设计方案修订103.4系统设计方案定稿103.3本章小结134 系统实现144.1 过关判定功能实现144.2 碎片随机出现功能实现154.3 碎片位置的判断功能实现164.4本章小结17参考文献19致谢201 引言1.1游戏的开发背景拼图游戏并非一开始便形成今天的面貌,它经历了一个发展、演变过程。1762年。英国制图家约翰史皮尔斯布里(johnspils-bury)为了改进地理教学,将一块块拼图应用在地理科的教材上,拼图的每一块可以代表一个国家、一个省份或地区,将它们完整地拼凑起来,就可以形成一个洲、一个国家。这样,枯燥的地理方位知识,借助于具体生动的拼图,就被学生所理解和强化了。这种教学方法,时至今日还在有些中学中运用,确实有十分独到的记忆深化效果。史皮尔斯布里以后又将整个地图设计成拼图游戏的形式。 随后,拼图逐渐突破教学的功能,朝着娱乐的方向发展。早期的拼图游戏构图简单,轮廓单纯明晰,难度不大。到了19世纪初。印刷技术的突飞猛进和印模压力机的发展使得拼图的制作工艺得到很大的提高。1840年,法国和德国率先推出了紧密相扣的拼图,此后,拼图游戏迅速风靡世界。至今仍然未被冷落。1.2游戏实现的意义随着智能手机的普及,手机上的游戏更是受到了很多人的青睐和欢迎。作为平时人们消遣娱乐打发时间的一种方式,目前休闲类游戏占有了手机游戏中的绝大多数,休闲类游戏不仅是一种有效的娱乐方式,在移动设备上还能够在满足娱乐的同时尽量的延长移动设备的使用时间。一款好的拼图类游戏集休闲、娱乐、深化记忆、提升智力与一体。让玩家在游戏中可以享受到不一样的乐趣。1.3本章小结本章主要是介绍开发这款游戏的背景、意义,面对现在高速发展的社会,人们越来越关注于移动端的休闲放松类游戏,所以开发这款小游戏是很有意义的。2 系统可行性2.1技术路线选择xcode 是苹果公司开发的编程软件,是开发人员建立os x 和 ios 应用程序的最快捷方式。xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发mac os x,ios的应用程序。 其运行于苹果公司的mac操作系统下。xcode前身是继承自next的project builder。the xcode suite 包含有gnu compiler collection自由软件 (gcc、 apple-darwin9-gcc-4.0.1 以及 apple-darwin9-gcc-4.2.1, 默认的是第一个),并支持 c语言、c+、fortran、objective-c、objective-c+、java、applescript、python以及ruby,还提供cocoa、carbon以及java等编程模式。协力厂商更提供了 gnu pascal,free pascal, ada, c#, perl, haskell 和 d语言。xcode套件使用 gdb作为其后台调试工具。不管你用c、c+、 objective-c 或java编写程序,在 applescript 里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现 xcode 编译速度极快。每次操作都很快速和轻松。cocos2d是一个基于mit协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。cocos2d也拥有几个主要版本,包括cocos2d-iphone、cocos2d-x,以及被社区普遍看好的cocos2d-html5和javascript bindings for cocos2d-x。同时也拥有了非常优秀的编辑器。另外,2012年发布的cocostudio工具集是开源游戏引擎cocos2d-x开发团队官方推出的游戏开发工具,目前已经进入稳定版。cocostudio吸取了他们自己在游戏制作中的经验,为移动游戏开发者和团队量身定做,旨在降低游戏开发的门槛,提高开发效率,同时也为cocos2d-x的进一步发展打下基础。因为我们开发的基于iphone的游戏,所以本游戏开发选择的是cocos2d for iphone。cocos2d for iphone 是一个用来开发 iphone 平台上的 2d 游戏和其他图形交互式应用程序的框架,和 cocos2d 的设计相同,使用相同的 api,但基于 objective c 的实现。2.2技术可行性分析大学入学以来,我们先后学习过objective-c程序设计,ui程序设计与开发,ios应用开发,oc项目应用,cocos 2d游戏开发,游戏项目实践等各门与游戏设计相关的课程。在学习理论知识的同时,我们也一直在实践。大一时曾在老师的指导下完成了计算器的开发。大二时,曾分组完成过阅读器的开发,并且各自完成过一次魔法英雄游戏的开发。所以,在技术上有能力完成本项目的开发。2.3系统的整体进度安排2.4运行环境本游戏开发和运行所需软硬件运行开发环境如下:1、 硬件环境1) iphone 手机2) 显示屏分辨率:11366403) 输入方式:触屏4) 内存:不小于50m2、 软件环境1)x-code2)ios 6.0 及以上平台2.5本章小结本章介绍的是游戏的系统可行性。包括选择x-code作为游戏的开发应用。选择cocos2d作为游戏的开发框架以及游戏的运行环境。同时,对技术的可行性进行了分析,以及系统的整体进度安排。3 系统设计3.1系统结构化分析1)游戏逻辑流程分析图。如下图3-1所示。图3-1 游戏流程图2)闯关过程逻辑流程分析图。如下图3-2所示。图3-2 闯关流程图3.2系统设计方案拟定本课题要开发的拼图游戏的主要功能设计如下:(1)图片碎片移动功能:玩家通过手指触摸下方碎片图来拖动至上方放置图片碎片的背景中。(2)下方图片碎片栏自动补充:下方碎片栏默认为四张碎片。玩家每从下方移动一块碎片至背景中,后续的随便将自动补充入碎片栏中。(3)图片碎片与背景重合:实现判断,碎片与背景相符。若相符,则可放置。若不符,则无法放置,自动回到下方碎片栏。(4)判断是否过关:规定时间内完成拼图判断过关,可进入下一关。未完成判断失败,可选择返回主菜单或者继续游戏。 (5)关卡的设置与保存:共有“简单、一般、困难”三个关卡。通过pilst文件保存已通过的关卡。3.3系统设计方案修订通过和指导老师研讨,补充及修改了下面的功能:(1)下方碎片栏的碎片有时候会固定排列顺序。后来使用随机数组加入后,使下方的游戏碎片每一次都是随机出现。(2)添加了虚拟化的背景作为下方碎片的提示依据。(3)修改了每个难度游戏的时间,使游戏变得更有挑战性。 3.4系统设计方案定稿(1)图片碎片移动功能:玩家通过手指触摸下方碎片图来拖动至上方放置图片碎片的背景中。如图3-3所示。图3-3 实现碎片拖动界面 (2)下方图片碎片栏自动补充:下方碎片栏默认为四张碎片。玩家每从下方移动一块碎片至背景中,后续的随便将自动补充入碎片栏中。如下图3-4所示。图3-4 碎片栏自动填充(3)背景虚拟化:将拼图的原图进行虚拟化,而后放入游戏界面充当背景,以方便玩家判定。(4)图片碎片随机排列:每一次开始游戏,下方的图片碎片栏内的碎片均为随机出现。如下图所示: 图3-5 第一次出现碎片 图3-6 第二次出现碎片(5)图片碎片与背景重合:实现判断,碎片与背景相符。若相符,则可放置。若不符,则无法放置,自动回到下方碎片栏。如图3-7所示:图3-7 碎片自动回到碎片栏(6)判断是否过关:规定时间内完成拼图判断过关,可自动进入下一关。未完成判断失败,可选择返回主菜单或者继续游戏。如下图所示:图3-8 游戏失败 图3-9 游戏胜利(7)关卡的设置与保存:共有“简单、一般、困难”三个关卡。通过pilst文件保存已通过的关卡。(8)时间控制:使关卡在一定的时间内结束。“简单、一般、困难”三个关卡的时间分别是60s,90s,120s。3.3本章小结本章介绍的是游戏的系统方案定稿。包括游戏玩法与游戏的输赢判断。4 系统实现根据前面的设计方案,采用cocos2d框架技术实现了本游戏的所有功能。几个主要的功能实现介绍如下。4.1 过关判定功能实现1.实现思路:通过判断碎片是否完成,时间是否结束来判断胜负。 2.实现代码:if (curboxarr.count=0 & boxarr.count=0)/如果两个碎片数组都为0 labe= cclabelttf labelwithstring:恭喜过关 fontname:marker felt fontsize:13;/判断游戏胜利,提示恭喜过关。 labe.color=ccred; labe.position=ccp(winsize.width/2, winsize.height/2); self addchild:labe z:1000; ccscaleto *sc=ccscaleto actionwithduration:0.5 scalex:6 scaley:5; labe runaction:sc; self unschedule:selector(changetime); self scheduleonce:selector(next:) delay:1; cclabelttf * label2;-(void)changetime move-=1; label2.string=nsstring stringwithformat:%d,move;if (move=0) /如果时间为0 self unschedule:selector(changetime); /关闭触控 cclabelttf *wp = cclabelttf labelwithstring:游戏失败 fontname:zapfino fontsize:50;/判定游戏失败。提示游戏失败。 wp.position = ccp(winsize.width/2, winsize.height/2+50); self addchild:wp z:1000; self.touchenabled = no; 4.2 碎片随机出现功能实现1.实现思路:通过随机数组,将碎片分为两个数组,一个为显示数组,显示最初的四块碎片。一个为隐藏数组,隐藏剩余的碎片。2.实现代码:-(void)initgame for (int i=1; i=16; i+) ccsprite *bgbox = ccsprite spritewithfile:nsstring stringwithformat:puzzle-%d.png, i; bgbox.tag = i-1; boxarr addobject:bgbox;/保存16张图片在这一数组。 self changebox;-(void)changebox for (int i=0; i0; i+) int n = (int)(ccrandom_0_1()*boxarr.count); ccsprite *sp = boxarr objectatindex:n; curboxarr addobject:sp;/按随机顺序加入此数组。 sp.position = ccp(winsize.width+boximgw, boxw/2-20); sp.scale = 0.7; self addchild:sp; boxarr removeobjectatindex:n; for (int i=0; icurboxarr.count; i+) ccmoveto *mt = ccmoveto actionwithduration:0.5 position:ccp(5+80/2+i*80, boxw/2-20); ccsprite *sp = curboxarr objectatindex:i;/显示数组少一块碎片,隐藏数组自动添加一块碎片进入显示数组。 sp runaction:mt; 4.3 碎片位置的判断功能实现1.实现思路:通过判断中心点。通过判断碎片的中心点与背景的中心点是否一致来实现碎片位置的判断。2.实现代码:-(void)cctouchesmoved:(nsset *)touches withevent:(uievent *)event/判断中心点 if (!lastsp) return; cgpoint pt = ccdirector shareddirector converttouchtogl:touches anyobject; lastsp.position = ccp(pt.x+lastsp.position.x-beganpt.x, pt.y+lastsp.position.y-beganpt.y); beganpt = pt;-(void)cctouchesended:(nsset *)touches withevent:(uievent *)event/判断中心点是否一致 if (!lastsp) return cgpoint pt = ccdirector shareddirector converttouchtogl:touches anyobject; nsvalue *val = boxptarr objectatindex:lastsp.tag; cgpoint boxpt;val getvalue:&boxpt;if (ccpdistance(boxpt, pt)boxw/4)/如果碎片位置正确可放置 curboxarr removeobject:lastsp; ccmoveto *mt = ccmoveto actionwithduration:0.3 position:boxpt; lastsp runaction:mt; else/位置不正确飞回到碎片栏内 ccscaleto *st = ccscaleto actionwithduration:0.3 scale:0.7; lastsp runaction:st; 4.4本章小结本章介绍的是系统实现的主要功能,以及实现这些功能的主要代码。总结大学三年的学习生活即将结束,经过老师们的辛勤教导,我们满载而归。这个时候通过毕业设计可以把自己的大学所学做一个总结或者说整理。本文能够成功的完成,游戏的常规玩法,给游戏玩家带来一个轻松愉快又益智的游戏体验。通过这次毕业设计的制作,使我对软件开发有了更深一步的了解。在软件开发中应注意的问题和考虑的问题都能较好的做到。在这短短时间的自学中要很好的应用这个工具还是有困难的,但也得到了不少自学经验,使我的自学能力有了很大的提高。在开发过程中也遇到了不少难题,为了解决这些难题我查阅各类相关书籍,同时请教老师和同学,不停地对编译程序进行测试,调试。但游戏还存在问题,虽然游戏的基本功能已实现,但该游戏还有许多不尽如人意的地方,与某些更加高级的游戏还有一定的差距。在这里我要特别感谢我的指导老师崔曙光老师,没有他的帮助、指导、支持我不可能完成毕业设计。参考文献1 满硕泉 著 cocos2d-x权威指南 机械工业出版社 2013.42 王寒 著 cocos2d权威指南 机械工业出版社 2013.3.13 美nathan burba 著 cocos2d for iphone游戏开发实例详解 人民邮电出版社 2012-12-14 devdiv移动开发社区 著 ios开发实战体验 海洋出版社 2012-85 joe conway, aaron hillegass 著 夏伟频 译 ios编程(第3版) 华中科技大学出版社 2013-3-16 (美)aaron hillegass 著 objective-c编程(big nerd ranch入门经典) 华中科技大学出版社 2012-9-17 美scott knasterwaqar ma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【教案版】小学三班级上册 小篮球6
- 2025年护士执业资格中级面试题答案及备考技巧
- 2025年炼油装置操作基础进阶面试高频考点解析
- 【教案版】小学三班级上册 跳跃2
- 《细胞能量通货 ATP》教学课件
- 2025年特岗教师招聘面试物理教育专业技能考核题集
- 2025年物业管理专业知识模拟题及答案详解
- 2025年建筑行业工程师招聘考试试题土木工程
- 2025年金属焊接材料及选用策略面试预测题
- 2025年仓库保管员应聘必-备知识面试模拟题及答案解析
- 中国古典文献学(全套)
- 地基换填处理计算(2017版)
- NB∕T 13007-2021 生物柴油(BD100)原料 废弃油脂
- GB/T 11918.1-2014工业用插头插座和耦合器第1部分:通用要求
- 顾客财产清单验证确认记录表、产品发放登记表
- 国家保安员资格考试培训教材
- 家谱电子版模板2
- 地下室抗浮计算含锚杆计算表格(自动版)
- 职业健康体检表
- DB43∕T 990-2015 辣椒耐弱光性鉴定技术规程
- 简单娱乐yy频道设计模板
评论
0/150
提交评论