Android游戏开发教程_第1页
Android游戏开发教程_第2页
Android游戏开发教程_第3页
Android游戏开发教程_第4页
Android游戏开发教程_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

经典word整理文档,仅参考,双击此处可删除页眉页脚。本资料属于网络整理,如有侵权,请联系删除,谢谢!如果你有兴趣为Android平台开发游戏,有很多你需要了解的东西。我是LightRacer,LightRacer3DWixel的开发者,这些游戏目前在AndroidMarket上有售。我以前也开发过游戏,但LightRacer是我的第一个Android应用程序,我从中学到了很多Android游了LightRacer3D的开发,内容全是教你怎样做以及有用的代码片段。你主要只需学习其架构以及API我总结了一张列表,上面有你必需知道的东西,供你起步用。这些知识适用于很多类型的游戏,包括动作类、策略类、模拟类和益智类。Android是一个基于Java的环境。这对初学者来说是个好消息,因为相对于C++,Java被广泛认为是一门更容易上手的语言,它是移动开发的规范。Google也做了一件出色的工作,它将API文档化并提供示例代码供使用。其中有个叫做APIDemos的示例几乎展示了所有APIJava并且用过Eclipse学习很多,但别气馁。SDK新手上路的第一步便是获取AndroidSDKSDK里有一个核心类库,一个模拟器,一些工具和示例代码。我强烈建议使用Eclipse和AndroidEclipse插件。如果你玩Android的话,EclipseIDE对Java开发者来说很好用。如果这是你第一次开发Java项目,你可能会需要下载全套JDK,它里面包括签名和部署你的应用程序的一些工具。学习应用程序架构别急着一头扎进开发的海洋里,理解Android应用程序架构是很将需要理解Applications、Activities、Intents以及它们怎样相互联系。Google么你的游戏需要多于一个的ActivityActivity生命周期。Activity生命周期Activity生命周期由Android操作系统来管理。你的activity创建、恢复、暂停、销毁都受操作系统的支配。正确处理这些事件是很重要的,这样应用程序才能表现良好,做用户认为正确的事。在你设以为自己节省调试时间和昂贵的重新设计时间。对大多数应用来说,默认的设置将工作正常,但对于游戏,你可能需要考虑将SingleInstance标志打开。当设置为默认时,Android在它认为合适时会创建activityactivity我来说,这解决了一些资源管理的问题,应予以考虑。主循环根据你写的游戏的类型,你可能需要也可能不需要一个主循环。作的游戏,你应该认真考虑下使用主循环。游戏的主循环以一个特定的顺序通常尽可能多的在每秒钟内“滴答”提醒子系统运行。你的主循环需要在它自己的线程里运行,原因是Android有一个主用户界面线程,如果你不运行自己的线程,用户界面线程将会被你的游戏所阻塞,这会导致Android操作系统无法正常的更新任务。执行的顺序通常如下:状态,输入,人工智能,物理,动画,声音,录像。应该处理这种延迟,并且在时间过了之后设置成下一个状态。Android里,难事。首先为下一个用户输入定义一个域,然后将onKeyPressed或onTouchEvent就够了。如果对于给定游戏的状态,这是一个合法的输入操作,那么理去关心怎样响应输入吧。智能会按照用户的意图来按按钮。这些也有待物理去处理和响应吧。理。动画并非像在游戏里放入会动的gif图片那样简单。你需要使得些像isDancing、danceFrame和lastDanceFrameTime那样的状态域,的事就那么多。真正来显示动画的变化是由录像更新来处理的。声音更新要处理触发声音、停止声音、音量变化以及音调变化。字节流,但是Android能够管理自己的声音,因而你的选择将是使用SoundPool或者MediaPlayer知道,因为一些底层实现细节,小型、低比特率的声音文件将带来最佳的性能和稳定性。录像更新要考虑游戏的状态、角色的位置、分数、状态等等,并SurfaceView,并做一个“推”绘制。对于其他视图,视图本身能够调用绘制操作,主循环不必处理。SurfaceView每秒产生的帧数最多,最适合于一些不同的更新任务来处理。代码看起来是什么样的?这儿有个例子。1:publicvoidrun(){2:while(isRunning){3:while(isPaused&&isRunning){4:sleep(100);5:}6:update();7:}8:}9:10:privatevoidupdate(){11:updateState();12:13:14:15:16:17:18:}updateInput();updateAI();updatePhysics();updateAnimations();updateSound();updateVideo();3D2D?3D的还是2D的。2D游戏有一个3D游戏需要更深入画比方框和圆圈更复杂的图形,还需要会使用3DStudio和Maya那样的建模工具。Android支持OpenGL用来3D编程,并且在OpenGL方面有很多很好的教程可供学习。建立简单、高质量的方法shuffleCards”的方法,并且该方法就应该只做这一件事。drawBackground解。最重要的是效率!越好,看起来越流畅越好。某些方法如Canvas.drawLine比较慢。并以最少量的CPU资源完成你的任务。如果性能不好的话,即使是最好提示和技巧看一下SDK中的示例LunarLander。它使用SurfaceView,这对于3D中有GLView可以处理3D显示的很多初始化工作。对LightRacer来说,都被画进主画布中去,车手画在顶端,到最后会有一个爆炸。这种技术使得游戏运行在一个可以玩的程度。CPU资源。在游戏中始终一致的位图配置(如RGBA8888不同格式之间转换的时间来节省图形库的CPU时间。如果你决定开发3D游戏但没有3D游戏编程方面的书并学习线性代数。你最少要理解点积、叉积、向3D声音文件要小而且低比特率。需要加载的越少,加载速度越快,游戏所需内存越少。声音使用OGG文件,图片使用PNG文件。确保释放所有媒体播放器,当Activity销毁时空出所有的资源。没有内存泄露。加入Android谷歌小组,

温馨提示

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

最新文档

评论

0/150

提交评论