1 / 17
文档名称:

Android游戏开发框架.doc

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

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

分享

预览

Android游戏开发框架.doc

上传人:phl806 2017/9/12 文件大小:241 KB

下载得到文件列表

Android游戏开发框架.doc

相关文档

文档介绍

文档介绍:Android游戏开发:游戏框架的搭建(1)
通常情况下,游戏开发的基本框架中,一般包括以下模块:
窗口管理(Window management):该模块负责在Android平台上创建、运行、暂停、恢复游戏界面等功能。
输入模块(Input):该模块和视窗管理模块是密切相关的,用来监测追踪用户的输入(比如触摸事件、按键事件、加速计事件等)。
文件输入输出(File I/O):此模块用来读取assets文件下图片、音频等资源。
图像模块(Graphics):在实际游戏开发中,这个模块或许是最复杂的部分。它负责加载图片并把它们绘制到屏幕上。
音频模块(Audio):这个模块负责在不同的游戏界面加载音各类频。
working):如果游戏提供多人游戏联网功能,此模块就是必须的。
游戏框架(Game framework):该模块把以上各种模块整合起来,提供一个易用的框架,来轻松地实现我们的游戏。

下面对每一个模块进行详细的描述。

1. 窗口管理
我们可以把游戏的窗口想象成一个可以在它上面绘制内容的画布。窗口管理模块负责定制窗口、添加各种UI组建、接受各类用户的输入事件。这些UI组件或许可以通过GPU等硬件加速(比如使用了OpenGL ES)。
该模设计时不是提供接口,而是和游戏框架整合在一起,之后会有相关的代码贴出。我们需要记住的是应用程序状态和窗口事件是该模块必须处理的事情:
Create: 当窗口被创建时被调用的方法。
Pause: 当应用程序由于默写原因暂停时调用的方法。
Resume: 当应用程序恢复到前台时调用的方法。


大部分操作系统中,输入事件( 比如触屏事件、按键事件)是通过当前的窗口调度(dispatched)的,窗口再进一步把这些事件派发给当前选中的组件。因此我们只需要关注组件的事件即可。操作系统提供的UI APIs提供了事件分发机制,我们可以很容易地注册和监听事件,这也是输入模块的主要职责。有两种处理事件的做法:
轮询(Polling):在这种机制下,我们仅检查输入设备的当前状态,之前和之后的状态并无保存。这种输入事件处理适合处理诸如触屏按钮事件,而不适合跟踪文本的输入,因为按键事件的顺序并未保存。
基于事件的处理(Event-based handling):这种机制提供了记忆功能的事件处理,比较适合处理文本输入或者其他需要按键次序的操作。
在Android平台中,主要有三种输入事件:触屏事件、按键事件和加速计事件,前两种时间使用轮询机制和基于事件处理的机制都适合,加速计事件通常是轮询机制。
触屏事件有三种:
Touch down: 手机触屏时发生。
Touch drag: 手指拖动时发生,此前有Touch down事件产生。
Touch up: 手指抬起时发生。
每种触摸事件有相关的辅助信息:触屏的位置、指针索引(多点触摸时用来追踪识别不同的触点)

键盘事件包括两种:
Key down: 按下键盘时触发。
Key up: 释放键盘时触发。
每种按键事件也有相关的辅助信息:Key-down事件存储按键码,Key-up事件存储按键码和实际的Unicode字符。

加速计事件,系统不停的轮询加速剂的状态,并以三位坐标标识。

基于以上介绍,下面定义输入模块的一些接口,用来轮询触屏事件、按键事件和加速计事件。代码如下:

.;
import ;
public interface Input {
public static class KeyEvent {
public static final int KEY_DOWN = 0;
public static final int KEY_UP = 1;
public int type;
public int keyCode;
public char keyChar;
}
public static class TouchEvent {
public static final int TOUCH_DOWN = 0;
public static final int TOUCH_UP = 1;
public static final int TOUCH_DRAGGED = 2;
public int type;
public int x, y;
public int pointer;
}
public boolean isKeyPress