1 / 19
文档名称:

Android游戏开发框架.doc

格式:doc   大小:186KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Android游戏开发框架.doc

上传人:小枷 2019/4/11 文件大小:186 KB

下载得到文件列表

Android游戏开发框架.doc

相关文档

文档介绍

文档介绍:螁Android游戏开发:游戏框架的搭建(1)罿通常情况下,游戏开发的基本框架中,一般包括以下模块:羈窗口管理(Windowmanagement):该模块负责在Android平台上创建、运行、暂停、恢复游戏界面等功能。肅输入模块(Input):该模块和视窗管理模块是密切相关的,用来监测追踪用户的输入(比如触摸事件、按键事件、加速计事件等)。膃文件输入输出(FileI/O):此模块用来读取assets文件下图片、音频等资源。荿图像模块(Graphics):在实际游戏开发中,这个模块或许是最复杂的部分。它负责加载图片并把它们绘制到屏幕上。虿音频模块(Audio):这个模块负责在不同的游戏界面加载音各类频。袃 working):如果游戏提供多人游戏联网功能,此模块就是必须的。芁游戏框架(Gameframework):该模块把以上各种模块整合起来,提供一个易用的框架,来轻松地实现我们的游戏。螈下面对每一个模块进行详细的描述。。窗口管理模块负责定制窗口、添加各种UI组建、接受各类用户的输入事件。这些UI组件或许可以通过GPU等硬件加速(比如使用了OpenGLES)。莀该模设计时不是提供接口,而是和游戏框架整合在一起,之后会有相关的代码贴出。我们需要记住的是应用程序状态和窗口事件是该模块必须处理的事情:*** Create:当窗口被创建时被调用的方法。袅 Pause:当应用程序由于默写原因暂停时调用的方法。肆 Resume:当应用程序恢复到前台时调用的方法。,输入事件(比如触屏事件、按键事件)是通过当前的窗口调度(dispatched)的,窗口再进一步把这些事件派发给当前选中的组件。因此我们只需要关注组件的事件即可。操作系统提供的UIAPIs提供了事件分发机制,我们可以很容易地注册和监听事件,这也是输入模块的主要职责。有两种处理事件的做法:蚆轮询(Polling):在这种机制下,我们仅检查输入设备的当前状态,之前和之后的状态并无保存。这种输入事件处理适合处理诸如触屏按钮事件,而不适合跟踪文本的输入,因为按键事件的顺序并未保存。袃基于事件的处理(Event-basedhandling):这种机制提供了记忆功能的事件处理,比较适合处理文本输入或者其他需要按键次序的操作。袀在Android平台中,主要有三种输入事件:触屏事件、按键事件和加速计事件,前两种时间使用轮询机制和基于事件处理的机制都适合,加速计事件通常是轮询机制。莀触屏事件有三种:莆 Touchdown:手机触屏时发生。袄 Touchdrag:手指拖动时发生,此前有Touchdown事件产生。芃 Touchup:手指抬起时发生。螀每种触摸事件有相关的辅助信息:触屏的位置、指针索引(多点触摸时用来追踪识别不同的触点)肇键盘事件包括两种:羆 Keydown:按下键盘时触发。莁 Keyup:释放键盘时触发。腿每种按键事件也有相关的辅助信息:Key-down事件存储按键码,Key-up事件存储按键码和实际的Unicode字符。袇加速计事件,系统不停的轮询加速剂的状态,并以三位坐标标识。螃基于以上介绍,下面定义输入模块的一些接口,用来轮询触屏事件、按键事件和加速计事件。代码如下:蚄 Input..;;publicinterfaceInput{lassKeyEvent{publicstaticfinalintKEY_DOWN=0;publicstaticfinalintKEY_UP=1;publicinttype;publicintkeyCode;harkeyChar;}lassTouchEvent{publicstaticfinalintTOUCH_DOWN=0;publicstaticfinalintTOUCH_UP=1;publicstaticfinalintTOUCH_DRAGGED=2;publicinttype;publicintx,y;publicintpointer;}publicbooleanisKeyPressed(intkeyCode);publicbooleanisTouchDown(intpointer);publicintgetTouchX(intpointer);publicintgetTouchY(intpointer);elX();elY();elZ();publicList<KeyEvent>getKeyEvents();publicList<TouchEvent>getTouchEvents();}螄袂上述定义包括两个静态类:KeyEvent和TouchEven