Android简单游戏框架结构一

来源:凤凰研究院 作者:王泰斗

今天开始介绍一个简单的Android平台游戏框架的搭建。此游戏框架的目的主要是将游戏开发中通用的代码以及部分共性操作实现,以达到利用该框架实现快速开发游戏的目的。

注:此游戏框架尚未完全完成,还在持续扩展中。本文介绍尽量以稳定的代码为主,扩展内容将会在其后陆续介绍。

GameSurfaveView

GameSurfaceView概述

游戏通常以一个Activity开始,调用被继承的SurfaceView实现对屏幕的显示控制和按键或触屏事件的处理。关于Activity其中的处理需要根据不同的游戏进行,并且共用代码并不是很多,所以没有将Activity写入框架。但对于SurfaceView其中很多的内容都是大部分游戏共用的设置,可以对其进行编写。

关于SurfaceView的设计仍然采用继承的方式设计。即在游戏开发中,直接继承框架中的SurfaceView即可实现主要的游戏所需的View功能。

接下来分析一下SurfaceView必须具备的几个特性。首先它必须具有线程的特性,至少它需要被一个线程控制,以维持屏幕的定时刷新甚至更多的其他操作;其次它需要能够识别手势动作,以便游戏中可以利用手势进行复杂的游戏设计;接着,它需要维护游戏中最基本的集中基本状态,包括游戏的载入、Logo、主菜单(Menu)、游戏过程、结束画面;最后还需要保存屏幕渲染的一些基本信息,比如屏幕的大小以及如何渲染等一些基本内容。

为了后面的介绍更加方便,现在给我们游戏框架中的SurfaceView起个名字,叫做GameSurfaceView。

在定义GameSurfaceView时,首先它应该是一个抽象类,然后它需要实现一些接口。因为我们需要在游戏开发时继承这个GameSurfaceView并且在编写框架代码时,会发现有些方法我们无法明确其在游戏中运行的方式,必须定义为抽象方法;关于接口应该包括Runnable、GestureDetector.OnGestureListener,另外还有一个SurfaceHolder.Callback。Callback接口是为了实现SurfaceView在状态改变时需要进行的一些必要的处理。

此时,GameSurfaceView的定义应该类似于

public abstract class GameSurfaceView extends SurfaceView implements Runnable,
SurfaceHolder.Callback, GestureDetector.OnGestureListener{

}

你可能感兴趣的:(游戏开发框架)