毕业设计(论文)-基于IOS的愤怒的小鸟游戏的设计与实现.doc_第1页
毕业设计(论文)-基于IOS的愤怒的小鸟游戏的设计与实现.doc_第2页
毕业设计(论文)-基于IOS的愤怒的小鸟游戏的设计与实现.doc_第3页
毕业设计(论文)-基于IOS的愤怒的小鸟游戏的设计与实现.doc_第4页
毕业设计(论文)-基于IOS的愤怒的小鸟游戏的设计与实现.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

盐城师范学院毕业设计盐 城 师 范 学 院 毕业设计 基于IOS的愤怒的小鸟游戏的设计与实现姓 名 学 院 信息工程学院 专 业 网络工程 班 级 12(2) 学 号 指导教师 2016年 5月16日盐城师范学院毕业设计基于IOS的愤怒的小鸟游戏的设计与实现摘 要 中国手机游戏在近几年开始快速发展,现在给大家推荐一款非常受欢迎的手机游戏愤怒的小鸟。通过对愤怒的小鸟的分析,让我们了解什么是手机游戏,同时结合结合该游戏品牌化,流行华和简单、简洁的操作方式的特点,并联系其契合了移动互联网的需求,抓住用户时间碎片化,抓住手机游戏“微游戏”时代的契机的成功关键来探索我国手机游戏的发展之路。Angry Birds(中文译名:愤怒的小鸟)是一款首发于iOS品台的触摸类游戏 。愤怒的小鸟是一款老少皆宜的益智类游戏,深受广大青少年和儿童家长的喜爱,他们把这款充满去趣味性的游戏作为他们休闲时的最好的选择,让这款游戏子很短时间内赢得了很高的人气。【关键词】:手机游戏,愤怒的小鸟,互联网,手机,IOS全套设计加扣 3012250582 盐城师范学院毕业设计Based on the IOS angry birdsThe design and implementation of the gameAbstractChina mobile games began to rapid development in recent years, and now give you recommend a very popular mobile game angry birds. Through the analysis of the angry birds, let us know what is the mobile phone games, at the same time, combining the game brand, popular in China and the characteristics of simple, concise way of operating, and contact the accorded with the demand of the mobile Internet, seize the user time fragmentation, seize the mobile game game the success of the opportunity of the era of the key to the development of Chinas mobile game. Angry Birds (English name: Angry Birds) is a touch games starting in iOS product. Angry birds is a puzzle game for young and old, loved by the majority of teenagers and childrens parents, they take it full of fun games as they are the best choice in leisure, within a very short time, let the game son won a high popularity.Key words:mobile game,Angry Birds,internet,mobile phone,IOS目录1绪论11.1 系统开发的背景11.2 可行性分析11.3 系统研究的目的和意义22系统需求分析22.1用户功能需求分析22.2 系统性能要求42.3 业务流程分析图43系统总体设计43.1 系统功能模块分析43.1.1 APP应用设置53.1.2 玩家信息管理53.2 系统类关系图53.3 系统总体设计64游戏的各个模块的设计与实现74.1 开发工具介绍84.2 游戏核心技术的介绍94.2.1 Cocos2D游戏引擎的简单介绍114.2.2 Box2D游戏引擎的简单介绍124.2.3物理引擎需要解决的问题124.3 游戏界面的搭建和角色的创建134.4 游戏应用程序所用到的框架和应用的头文件145 系统测试与性能分析155.1 功能测试165.2 测试结果分析186 结束语19参考文献21致 谢221绪论1.1 系统开发的背景 到2013年止,全球的电子游戏交易市场的交易额已高达930多亿美元,这是一个多么惊人的数据啊,我们为已经成为全球娱乐产业的领头羊的电子游戏产业而感到惊叹不已,电影产业用了180年菜达到了它现在所达到的高度,而电子游戏产业仅仅用了短短的40年就超越了电影产业,可见电子游戏在全球受青睐的程度远超电影1。根据中国移动游戏产业的发展趋势显示,截止到2013年中国电子游戏产业市场销售总额已经达到800多亿,这也是一个非常可观的数据,同比上一年增长40%以上,如今,中国手机游戏用户已达3.2亿,占了将近中国总人口的1/4。2013年8月到12月,中国移动网络游戏市场实际销售收入约41.5亿元,环比增长49.6%。据权威机构预测,未来几年年,移动互联网市场的高速增长带来的手机游戏制造的产值将由250亿美元增长至600多亿美元2。手机游戏的每年增长率是真个游戏行业增长率的3.8倍,这说明,手机游戏的增长,远远跑赢游戏行业其它行业。1.2 技术可行性分析技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足开发者的需要等。现在的社会,手机已经成为人们的生活必需品了。手机也在实现着越来越多的功能,游戏的出现更是顺应时代的召唤。对于开发者而言,手机游戏开发意义是非常非常重大的。在以前,也许在手机上玩游戏可以说是天方夜谭,但今天,移动电话已不仅仅只有打电话和发短信这么简单的功能了,它现在的主要特性是网络计算机,如今是联网的年代,有了网络,我们可以接受和传递许多数据和信息,而且速度非常可观,素以现在的手机即移动电话可以说是一台小型计算机,也许它与台式机相比还是有一定的差距的,但要运行一款手机游戏还是绰绰有余的。所以这样的网络游戏在手机上实现是完全可以的。1.3 系统研究的目的和意义现在的社会,手机已经成为人们的生活必需品了。手机也在实现着越来越多的功能,游戏的出现更是顺应时代的召唤。对于开发者而言,手机游戏开发意义的重要性不言而喻。下文的内容让我们一起去了解一下。当今社会的移动电话与几十年前的移动电话相比较,变化可谓是天翻地覆啊。以前的移动电话就只能打打电话和发发短信,上网几乎是不可能的,再看看现在的移动电话,简直就是一台小型的计算机,夸张点说,只有你想不到的,没有它组不到的,更何况是一款手机游戏在手机上运行!所以这样的网络游戏也可以在手机上实现。由于计算机科学的快速发展,游戏开发得到了飞速的开发和普及。而基本完善的图形学、应用数学、数据结构、算法以及网络安全完整合成了游戏开发所必需的游戏引擎4。由于快速做出原型是游戏开发的一个重要的部分,所以必须学会高效编写可充用的代码。作为一个即将成为程序员的应届毕业生,我重来没有正真理解游戏开发重要性,不过直到最近,看到别人的一个游戏演示引起了多少人的关注,不管我喜不喜欢游戏,但游戏给我们的欢乐和创造希望的梦想我是不可以否定的,让我对游戏编程又充满信心,这使我得出一个结论,就算游戏开发不是一个重要的领域,也与一定的价值,速与我奥在这跳道路上一直走下去。我们可以看到研究手机游戏开发意义是有成就感的,这种成就感就是别人玩了这种游戏之后会有满足,会有愉悦感,这就是动力。2系统需求分析2.1用户功能需求分析由于本游戏简单易操作,容易引起玩家的兴趣,对用户没什么特殊的要求。一般经过几分钟的练习就都可以熟悉游戏规则和玩法。如图2-1,图2-2,图2-3,图2-4。图2-1 游戏界面图详细步骤如下:1、在平台上注册一个愤怒的小鸟帐号2、使用新创建的帐号登录到游戏3、进入主界面之后过一会会提示“是否进行数据合并”玩家们选择“是”就行了,这样玩家就可以继承游客登录的存档了。使用帐号登录走到哪里都不怕存档丢失哦,这就是云存储的优点之一。 图2-2游戏界面图例 图2-3游戏界面图例图2-4游戏界面图例2.2 系统性能要求1.实时性本游戏是手机游戏,因此用户给出的的操作程序必须立即作出响应,否则该游戏视为失败5。现在的手机游戏几乎都要求实时性,如果你玩一款游戏手机上点了半天,结果好几分钟后才给你反应,这样的游戏你会去玩么,现在的玩家都追求实时性,就是玩家做出操作,系统能马上给出响应,这样才会给玩家一定的吸引力,否则,连最起码的实时性都不能满足的的手机游戏,是非常失败的。 2. 易操作性 易操作是手机游戏的首要特性,用户能不看说明书,只要进行多次试玩就可以了解本游戏的规则,这是本应用对操作的基本要求。一款好的手机游戏是要受到绝大多数认得欢迎才是一款好的手机游戏,只有很多人玩才能证明这一点,而在这么多的玩家中只有少之又少的玩家才具备极强的动手操作能力,很多都是与生俱来的天赋。如果一款游戏你设计的操作难度太高,绝大多数玩家都无法驾驭,那么他们就会放弃该游戏而去选择另一款适合他们的游戏,所以一款游戏想要受欢迎,那就必须符合大众的要求,不能追求特殊化,来满足极少数高操作玩家的要求6。所以一款好的手机游戏,他的易操作性也十分厂重要的。2.3 业务流程分析图 业务关系总体分析图如图2-5所示。图2-5 业务关系总体分析图 第 4 页 共 21 页,3系统总体设计3.1 系统功能模块分析当前应用使用xcode软件的UI界面对游戏的各个界面进行设计,实现每个游戏界面的跳转功能,本系统的功能模块也分为5个不同的功能模块。游戏登录模块开始游戏模块暂停游戏模块结束游戏模块退出游戏模块。UI设计基本概念与流程介绍UI即User Interface(用户界面)的简称。UI设计是指对软件的人机交互、操作逻辑,界面美观的整体设计7。好的UI设计不仅是让软件变得有个性有品位,满足绝大部分用户的基本需求和审美观要求,还要让软件的更具有操作性,充分体现软件的定位和特点。UI设计由交互设计,界面设计和用户研究三部分组成。UI设计流程是从立定一个项目开始的,然后基于这三部分开始设计项目,作为一名UI设计师,就应该严格遵循流程的规范,进行需求,分析设计,调研验证,方案改进以及用户验证反馈等阶段。3.1.1 APP应用设置设置应用系统背景音乐声音大小、背景色的亮暗度和游戏难度。使用SeekBar来控制系统音量,使用RadioGroup来控制游戏难度。3.1.2 玩家信息管理在游戏结束的时候,系统会记录玩家的得分情况和玩家昵称,玩家还可以查看自己的排名情况3.2 系统类关系图系统的实体类、边界类和控制类的关系图如图3-1所示: 图3-1 系统的实体类、边界类和控制类的关系图 各个界面类之间的关系如图3-2所示: 图3-2 各个界面类之间的关系图3.3 系统总体设计 系统中只有玩家这一类用户,所以没有必要像其他网站或教务系统一样进行身份验证等操作。玩家只需要点击游戏的应用图标,进入登录界面,输入自己的账号就可以进入游戏界面开始游戏,用户总体的操作可以归并成如图3-3。用户的操作基本步骤可以分为“开始游戏”,“设置游戏”,“玩游戏”,“查看分数”,“退出游戏”这五个用例7。 图3-3 用户总体操作图4游戏的各个模块的设计与实现4.1 开发工具介绍要开发IOS的应用程序,首先必须配备有一台苹果电脑,而且这台电脑里还得装有Xcode9。Xcode是苹果公司为我们这些开发所提供的开发工具,它不但具有项目管理、创建执行程序功能,还具有代码库管理以及性能调节功能。当然它也不是唯一的开发工具。在开发这款游戏的时候,我们还主要运用到C/C+以及Objective-C和一些简单的UIView和UIViewController10主要语言Objective-C介绍Objective-C是一门为C语言增加面向对象功能的语言,是开发Mac OS、iPhone/iPod touch和iPad应用的主要语言。Objective-C最大的特点是支持面向对象编程,具备很多动态语言才有的动态特征,同事在效率伤害可以媲美C语言。随着Mac OS X 和iOS的逐步更新,Objective-C运行的心痛也做了逐步的提升。Objective-C语言本身也引入了不少新的特性,包括新的内存官路方式ARC。另外属性声明和代码块的适用范围也得到了扩大。Objective-C编程风格这些年也在不断地更新。Xcode介绍Xcode是苹果公司向开发人员提供的集成开发环境,用于开发Mac OS X和iOS的应用,其中自带了Objective-C编译器11,给我们提供了所有的开发所需的工具,让你可以创建和管理你的项目和代码,构建你的代码,让它成为可执行的文件,在模拟器或者真是的设备上可以运行和调试。当你在创建一个新的iPhone的应用程序时,需要在Xcode创建一个新的项目开始。这个项目管理你的所有的相关信息,包括代码,构件设置和一些规则。每个Xcode项目的核心就是项目的窗口,项目窗口如图4-1所示,项目窗口里包括了别人访问你的项目的大多数途径,项目窗口还提供了项目的其他信息。 图4-1 项目窗口显示图4.2 游戏核心技术的介绍这款游戏的制作关键在于Cocos2D游戏引擎和Box2D游戏引擎的应用。 Cocos2D如今是一款支持多个平台的2D手机游戏引擎,它不仅支持iOS,还支持Android、BlackBerry等众多的平台。现在移动端流行的大多数手机游戏都是基于Cocos2D开发的。如果大家想学习的话可以参考Cocos2D-X游戏开发技术精解,这本书里详细给我们介绍了如何使用Cocos2D-X引擎来开发自己的引动平台游戏12。Box2d是一个现在非常常用和有名的2d物理引擎,Box2d有C+,flash和Java等版本,而我们今天则使用的C+版本,android则是用的Java版本的Box2d.虽然这个游戏引擎非常的有名和常用,但是网上关于它的资料真的很少,特别是关于图形绘制方面的少之又少,在这里就不给大家做什么详细介绍了。4.2.1 Cocos2D游戏引擎的简单介绍Cocos2D的两个衍生版本,如图4-2。Cocos2D-X和Cocos2D-AndroidCocos2DObjective-CCocos2D-AndroidJavaCocos2D-XC+图4-2 Cocos2D的两个衍生版本图 4.2.2 Box2D游戏引擎的简单介绍物理引擎就是解决游戏中物理规律的变化主要是按照物理规律来进行计算刚体的运行的轨迹Box2D可以和Cocos2D完美的配合 4.2.3物理引擎需要解决的问题 1.小鸟运动轨迹(有重力加速度和摩擦力) 如图4-4 2. 小鸟和冰架碰撞变形问题 3. 小鸟和小猪碰撞变形问题 4。小鸟和地面碰撞变形反弹问题 图4-4 小鸟和地面碰撞变形反弹图4.3 游戏界面的搭建和角色的创建 登录界面和游戏界面都是使用UIView和UIViewController来控制和绘制的。UIView主要负责界面的控制,UIViewController则负责界面的搭建、绘制、修改等工作。其中UIView是主线程,UIViewController是子线程13。UIView Controller与画面控制UIView Controller与画面控制UIViewController是画面控制的核心。这里将介绍怎么使用UIViewController对由各种UIView组成的画面进行有效管理,以及页面跳转的方法。UIViewController中有导航条、工具条等多种功能界面。正如UIView是组成画面的重要部分,UIViewController也是组成应用程序的重要部分。掌握这两种最基本的类,是成为合格iOS应用开发程序员的必要条件。UIViewController与画面的关系UIViewController在UIKit中主要起到是控制画面的切换的作用,其中的view属性(UIView类型)是用来管理整个画面的外观。在开发iPhone应用程序时UIViewController并不是必不可少的,譬如在第1章中的Hello World程序中显然就没用到UIViewController,着说明写iPhone应用程序可以不用UIViewController.除此自外,我们还可以通过对画面中控件属性的修改从而起到切换换面外观的作用,例如此时可采取将不需要的控件都隐藏起来的方法。此时仍然不需要UIViewController。由于该游戏的界面比较多,涉及的类比较复杂,所以这里只给大家展示部分界面和实现的代码。登录界面和游戏界面如图4.4.1-4.4.6所示: 图4-4-1 登录界面图 图4-4-2 游戏界面图图4-4-3 游戏界面图 图4-4-5 游戏界面图粒子飞行及碰撞就消失代码:#import ParticleManager.h static ParticleManager *s;implementation ParticleManager- (CCParticleSystem *) particleWithType:(ParticleTypes)type CCParticleSystem *system = nil; switch (type) case ParticleTypeSnow: system = CCParticleSnow node; / 取得雪花的粒子对象 CCTexture2D *t = CCTextureCache sharedTextureCache addImage:snow.png; / 30x30 / 把snow.png图片转化为纹理 system setTexture:t; break; case ParticleTypeBirdExplosion: system = ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:bird-explosion.plist; / 使用bird-explosion.plist作为粒子效果的文件 system setPositionType:kCCPositionTypeFree; / 设置粒子效果位置独立system setAutoRemoveOnFinish:YES; / 粒子效果完成后自动删除 break; default: break; return system;end 图4-4-6 游戏闯关成功图成功闯入下一关代码:#import GameUtils.h implementation GameUtils+ (NSString *) getLevelFilePath / 得到存放成功通关的文件 return NSHomeDirectory() stringByAppendingPathComponent:Documents stringByAppendingPathComponent:SuccessLevel; / 存在沙盒 Documents/SuccessLevel;+ (int) readLevelFromFile NSString *file = self class getLevelFilePath; / 取得存放数据文件; / 读取文件 NSString *s = NSString stringWithContentsOfFile:file encoding:NSUTF8StringEncoding error:nil; if (s) return s intValue; return 2; / 2缺省的通关管卡+ (void) writeLevelToFile:(int)level NSString *s = NSString stringWithFormat: %d, level; / 把level转化成一个字符串 NSString *file = self class getLevelFilePath; / 取得要存放的文件 s writeToFile:file atomically:YES encoding:NSUTF8StringEncoding error:nil;end游戏开始界面如图4-5: 图4-5 游戏开始界面图 游戏暂停界面如图4-6: 图4-6 游戏暂停界面图 游戏开始与暂停代码:cation *)application CCDirector sharedDirector pause; / 暂停游戏 - (void)applicationDidEnterBackground:(UIApplication *)application CCDirector sharedDirector stopAnimation; / 停止刷新 停止动画 - (void)applicationWillEnterForeground:(UIApplication *)application CCDirector sharedDirector startAnimation; / 开始动画 - (void)applicationDidBecomeActive:(UIApplication *)application CCDirector sharedDirector resume; / 恢复运行 /* Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. */end 游戏一般场景图片展示如图4-7:图4-7 游戏一般场景图 游戏场景和布局代码:#import SlingShot.h implementation SlingShotsynthesize startPoint1 = _startPoint1;synthesize startPoint2 = _startPoint2;synthesize endPoint = _endPoint; / draw函数 所有ccnode里面虚函数- (void) draw / 要实现真正的画线 glLineWidth(2.0f); / 设置线宽 glColor4f(1.0f, 0.0f, 0.0f, 1.0f); / 设置颜色 glEnable(GL_LINE_SMOOTH); /把线段反锯齿 glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_COLOR_ARRAY); GLfloat ver4 = _startPoint1.x, _startPoint1.y, _endPoint.x, _endPoint.y; glDisable(GL_LINE_SMOOTH); end 游戏角色bird图片展示如图4-8:图4-8 游戏角色bird图游戏主要角色bird的创建代码:#import Bird.himplementation Birdsynthesize isFly = _isFly, isReady = _isReady;-(id)initWithX:(float)x andY:(float)y andWorld:(b2World *)world andLayer:(CCLayer *)layer myLayer = layer; imageUrl = bird; myWorld = world; self = super initWithFile:NSString stringWithFormat:%1.png, imageUrl; self.tag = BIRD_ID; self.position = ccp(x, y); HP = 10000; self.scale = 0.3f; return self;-(void)hitAnimationX:(float)x andY:(float)y for (int i = 0; i6; i+) int range = 2; CCSprite *temp = CCSprite spriteWithFile:yumao1.png; temp.scale = (float)(arc4random()%5/10.1f); temp.position = CGPointMake(x+arc4random()%10*range-10, y+arc4random()%10*range-10); myLayer addChild:temp; 游戏角色pig图片展示如图4-9:图4-9 游戏角色pig图游戏角色pig 创建代码:#import Pig.h implementation Pig-(id)initWithX:(float)x andY:(float)y andWorld:(b2World*)world andLayer:(CCLayer *)layer myWorld = world; imageUrl = pig; myLayer = layer; / myLayer表示 GameLayer游戏场景 self = super initWithFile:NSString stringWithFormat:%1.png,imageUrl; self.position = ccp(x, y); self.tag = PIG_ID; HP = 1; float scale = 2; self.scale = scale/10; ; blockShape.Set(vertices, 8); b2FixtureDef ballShapeDef; ballShapeDef.shape = &blockShape; ballShapeDef.density = 80.0f; ballShapeDef.friction = 80.0f; / We dont want the ball to have friction! ballShapeDef.restitution = 0.15f; ballBody-CreateFixture(&ballShapeDef); return self; end4.4 游戏应用程序所用到的框架和应用的头文件Frameworks libz.dylib QurtzCore.Framework OpenGLES.framework OpenAL.framework AudioToolbox.framework AVFoundation.framework UIKit.framework Foundation.framework CoreGraphics.framework#include#include#include#include#include#include#include#include#include#include#include#include#include5 系统测试与性能分析5.1 功能测试本章根据测试用例书对网上招聘系统的各项功能进行了测试,以检验本系统的是否实现了预期设计的要求。具体测试情况,如表51所示。表51 测试用例书项目名称基于IOS的愤怒的小鸟游戏的设计与实现测试环境硬件环境服务器端:MAC机一台 客户端:MAC机一台软件环境服务器端:OS操作系统,安装了Xcode客户端:Chrome 39.0.2171.95 m浏览器网络环境中国电信,20M带宽编制人卞城城测试时间2016-04-07测试编号测试对象测试步骤预期结果结果001管理员输入管理员账号和密码跳转到游戏登录界面OK002点击开始游戏进入游戏开始界面OK003开始游戏正常游戏OK004完成第一关任务进入下一关OK005未完成此关任务跳转到结束界面并显示所获得的得分OK006点击玩家信息显示玩家得分和前十名得分玩家OK007退出游戏退出游戏界面OK5.2 测试结果分析本系统完成了既定设计的功能,对于系统输入的数据有严格的验证,系统性能良好,达到系统设计的要求。由于缺乏相关测试环境、工具软件,不能对系统进行高并发等极端情况下的稳定性测试。6 结束语本次设计在完成设计的过程中不断查阅资料以及余老师的耐心指导,已基本实现了系统预期设计的功能。然而由于时间关系,系统仍然存在一些不完美的地方,比如页面不够美观,功能与成熟的手机游戏相比不够完善等都需要自己在日后的学习过程中不断进步。总体来说,通过本次设计,让我对整个软件开发流程有了更好的理解,对于系统中用到的技术,比如Framewo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论