基于OpenGL ES的iPhone游戏的设计与实现.docx
《基于OpenGL ES的iPhone游戏的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于OpenGL ES的iPhone游戏的设计与实现.docx(20页珍藏版)》请在冰豆网上搜索。
![基于OpenGL ES的iPhone游戏的设计与实现.docx](https://file1.bdocx.com/fileroot1/2022-10/12/c4ed6d24-c032-4626-8b80-2370bcc2a8d7/c4ed6d24-c032-4626-8b80-2370bcc2a8d71.gif)
基于OpenGLES的iPhone游戏的设计与实现
基于OpenGLES的iPhone游戏的设计与实现
摘要:
随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注。
本文的摇色子游戏是基于OpenGL库的运用,结合面向对象方法开发的。
OpenGLES是OpenGL的一个子集,它是专门为iPhone之类的嵌入式系统设计的。
本文简述了OpenGLES和iPhone游戏开发的相关知识,然后通过需求分析,搭建了摇色子游戏的基本框架,最后通过总体设计和详细设计论述了系统的开发和实现过程。
关键词:
手机游戏;摇色子;OpenGLES;iPhone
TheDesignandDevelopmentOfIPhoneGameBasedOnOpenGLES
Abstract:
Alongwiththedevelopmentofcommunicationandthepopularizationofhandset,peoplepaymoreattentiontothehandsetgametechnology.BasedontheapplicationofOpenGLstorehouse,thedevelopmentofthispaper'sdicegameiscombinedwiththeobjectorientation.OpenGLESisasubsetoftheOpenGL.ItisspeciallydesignedfortheembeddedsystemsuchasiPhone.ThispapergivesasimplereviewonrelatedknowledgeoftheOpenGLESandthedevelopmentofiPhonegame.Throughtheanalysisofthedemand,thenthebasicframeworkofdicegamewillbebuilt.finally,throughthedesignofwholesystemandthedetaileddesign,theprocessofdevelopmentandachievementwillbebroughtforth.
KeyWords:
handsetgame;dice;OpenGLES;iPhone
第1章绪论
1.1引言
苹果公司于2007年推出基于MacOSX10.5精简版的iPhone手机,iPhone自上市后就不断地创造着销售奇迹。
由于iPhone是苹果公司推出的掌上通信设备,所以它有些特别,它的特别之处在于苹果公司自身的很多东西是自成一套的,是不开放,是对外界封闭的。
以前iPhone只开放浏览器中程序的编写,如果自己想写一个软件在iPhone手机上运行则是不允许的,后来苹果放开了这种限制,开发人员不但可以写属于自己的程序,而且还可以将写好的程序上传到苹果的AppStore中供其他人下载。
开发人员可以为自己的软件定个价格,这样,其他人下载的时候就要支付开发人员一定的费用。
而且基于苹果系统的原因,想要将第三方软件移植到iPhone平台上也就变得非常容易,因此越来越多的软件开发人员正加入到iPhone应用的开发热潮中。
在iPhone开发中,依靠两个不同的库可以用来进行自定义绘图:
Quartz2D和OpenGLES。
OpenGLES是跨平台图形库OpenGL的一个子集,它是专门为iPhone之类的嵌入式系统设计的。
Quartz2D提供了很多图像绘制函数,使用起来也非常容易,但它只能用于二维的图形设计。
而且尽管Quartz中的很多函数会利用硬件加速,但不能保证所有的操作都得到加速。
OpenGL中则用于二维和三维的图形设计,而且它经过专门设计,与硬件的加速能力结合最为紧密,性能最好,它也非常适合用于编写游戏和其他图形密集的、复杂的程序。
如果想做3D程序,就必须用OpenGLES,如果是纯2D的游戏,使用OpenGLES作为引擎将能获得最佳的性能,所以本论文中设计的摇色子小游戏就是基于OpenGLES来设计和实现的。
1.2本论文研究内容
本项目是根据毕业设计的要求,经过本人实践及深思熟虑后提出,是结合所学知识所作出的最终决定。
本文是在了解iPhone开发流程的基础上,基于OpenGLES搭建一个iPhone游戏平台,在这个平台之上,实现一个具体的摇色子游戏。
本游戏直观易懂,使用非常方便,用户可以直接上手,而且从技术上、经济上、可操作性上都是可行的,要求也不高,所以该工程的开发是可行的。
本论文主要内容包括创建OpenGLES工程,游戏基本框架的搭建,游戏的具体实现,代码的优化等。
游戏编写采用面向对象思想,将相同性质的对象抽象出来,大大降低耦合度。
当应用程序启动后,按下触摸屏或晃动iPhone手机时,2个色子会快速旋转起来,色子的点数是随机变化的,色子旋转时会伴随着音乐唰唰作响。
本论文设计的投掷色子游戏的功能介绍及要求如下:
(1)在桌布上显示2个色子。
(2)在游戏的开始界面上,有“Start”和“Help”按钮。
(3)点击“Help”按钮时,要显示游戏的帮助信息。
(4)点击“Start”按钮进入游戏,通过触摸屏可以操作,按下触摸屏时,色子开始摇动、旋转,松开停止旋转。
(5)点击“Start”按钮进入游戏,通过摇动手机来开始投掷色子,摇动停止后,色子停止转动。
(6)在色子投掷的过程中要有音乐,色子停止时,声音也停止。
1.3OpenGLES概述
OpenGLES是OpenGL的简化版,OpenGL的英文全称是“OpenGraphicsLibrary”,顾名思义,OpenGL便是“开放的图形程序接口”。
OpenGL是一种软件接口,该接口中包含大约250个函数,所以OpenGL并不能算是一种编程语言,而更类似于C语言的函数库。
因为OpenGL具有很多优点,比如体系结构简单合理、与操作平台无关、使用方便等,所以它逐渐成为目前流行的图形开发标准。
但是OpenGL并没提供一些可以直接用来描述场景的高层函数,开发人员只能根据少数几个基本的图元来创建所需的模型。
OpenGLES是为满足嵌入式系统及移动平台的低功耗要求,在OpenGL的基础上进行裁剪而形成的,因此很多OpenGL方面的知识都是可以直接借鉴的。
要达到在很好完成图形处理的同时降低功耗是OpenGLES推出的主要目标。
由OpenGLES和硬件结合而实现的硬件加速性能可以用来实现非常绚丽的图像效果,目前很多高性能要求的嵌入式设备都是采用的这种方法。
iPhone本身具有的图像硬件加速处理能力是很强大的,所以即便是和掌上游戏机相比,iPhone对游戏的支持也毫不逊色。
iPhone手机游戏是在OpenGLES图像处理平台之上,同时借助iPhone手机强大的图像硬件加速功能来实现游戏对画面效果以及性能的要求。
1.4本论文的组织
本文共分为6章,其中:
第1章绪论;介绍了本论文研究的内容以及OpenGLES的相关知识,主要包括OpenGLES的发展态势及其在一些领域的应用等。
第2章游戏开发环境的介绍;介绍了iPhone平台的相关知识,搭建iPhone开发环境的方法以及采用的几种开发工具。
第3章游戏基本框架的搭建;首先介绍了用Xcode创建工程的方法,然后查看了应用程序的整个文件架构。
最后通过添加一些封装或类文件来实现基于OpenGL开发的基本框架,依次实现了画图类、接口封装文件、应用程序类、子窗口类、纹理类和字体类。
第4章游戏的具体实现;基于游戏的基本框架,进一步完善代码文件,首先在画图类中添加旋转功能,然后在应用类中添加两个图片,在子窗口类中也添加了按键和加速计的响应代码,最后是背景音乐的实现。
第5章代码的优化;考虑到代码的后续调试和维护,对代码进行了优化。
第6章结束语;对论文的整个设计以及iPhone开发者从开始准备到将软件发布在AppStore上所需要做的工作进行了总结,并对下一步的工作做了展望。
第2章游戏开发环境的介绍
2.1iPhone平台简介
2007年,苹果公司推出基于MacOSX10.5精简版的iPhone手机,iPhone自上市后就不断地创造着销售奇迹。
iPhone应用程序本身有着很多特殊的地方,比如:
当前窗口只能有一个,只有一个主屏按键,访问受限制,有限的响应时间,有限的屏幕大小,有限的系统资源,不支持垃圾收集等等。
iPhone开发所用的语言是Objective-C语言,简称OC。
OC语言诞生于80年代早期,它以SmallTalk语言为基础。
1988年,NeXT公司开发出了OC语言库和开发环境。
1996年12月,苹果收购NeXT,开发环境被称为Cocoa。
内置对OC的支持,并结合了Xcode和InterfaceBuilder等开发工具,成为苹果平台功能强大的开发环境。
OC是C语言的一种扩展,它不仅完全支持C语言的C99标准规范,而且它还是一种面向对象的语言。
Objective-C语言的源程序扩展名是.m,如果用OC写C++程序,扩展名就是.mm。
写出的程序可以使用gcc编译器来编译。
2.2iPhone开发环境的搭建
只有在iPhoneSDK下才能进行iPhone开发,此外还有很多必不可少的条件:
(1)一台运行Leopard(OSX10.5.6或更高版本)的Mac;
(2)注册成为iPhone开发人员,只有这样才可以下载iPhoneSDK,注册网址为:
(3)熟悉Objective-C编程语言;
(4)熟悉iPhone手机本身;
(5)如果想将编写的程序下载到真机上,还需注册成为IDP会员。
下载安装好iPhoneSDK后,会发现其中包含了很多组件,这些组件共同构成iPhone基本的开发环境。
其中有三个在开发中必备的工具:
Xcode,InterfaceBuilder和iPhone模拟器。
Xcode用来写代码;InterfaceBuilder用来设置界面;iPhone模拟器用来对程序进行调试运行。
第3章游戏基本框架的搭建
3.1启动Xcode创建工程
启动Xcode,创建一个基于OpenGLESApplication模板的名字为DiceGame的新工程,出现如图3-1.1所示的工程界面,左侧主要包含工程的文件目录,Classes中存放的是类文件,为保持工程的结构清晰,创建好的类文件都存放在Classes中;OtherSources中有个.pch文件和main.m文件,.pch文件可以防止头文件的重复导入,main.m则是应用程序的入口;Resources中存放着程序运行所需要的重要资源;Frameworks文件包含了工程所用的框架库,如果需要使用新的框架库中的接口函数,就必须把框架库添加到该文件夹中;Shaders和Products都是系统有关的文件,不需要开发人员修改。
右侧上部分是所选文件包含的资源列表,下部分是编辑区。
从图中可看出,创建完工程的同时,系统自动创建好了一些文件,如代理类文件、子窗口文件等。
图3-1.1DiceGame的工程结构
Figure3-1.1TheengineeringstructureofDiceGame
编译DiceGame系统工程模板,运行后会看到一个旋转着的彩色正方形,如图3-1.2所示。
图3-1.2OpenGLES显示效果
Figure3-1.2Theef