Android简单游戏框架结构二

主要成员变量

成员变量主要分为5类。第一类是与SurfaceView控制相关的,只有一个即SurfaceHolder;第二类是游戏状态,定义为int类型变量gameState;第三类为线程管理;第四类为手势控制;第五类是屏幕渲染。

►SurfaceHolder

SurfaceHolder定义如下:

SurfaceHolder holder;

其定义非常简单,其初始化及使用在后续相关方法的介绍中陆续进行。由于其仅在GameSurfaceView中使用,因此不需要对其增加public修饰。

►游戏状态

gameState定义如下:

public int gameState;

由于gameState需要其子类频繁使用,以判断当前游戏状态,因此需要将其定义为public以方便子类随时使用。

在定义gameState后还需要定义其相关参数的具体意义,因此需要增加定义一系列的常量,以便于在开发过程中识别其各个数值的意义。定义如下:

public final int GAMESTATE_LOADING = 0;
public final int GAMESTATE_LOGO = 1;
public final int GAMESTATE_MENU = 2;
public final int GAMESTATE_PLAY = 3;
public final int GAMESTATE_END = 4;

此时,gameState的赋值及判断均可由上述常量进行,并且可以根据需要进行扩充。但需要注意的是,此游戏框架所适应的游戏类型以及后续各相关方法中不同状态的操作要修改完整,否则容易出现状态紊乱。

►线程管理

线程管理需要三个变量,第一个是线程对象,其后两个分别是线程的暂停开关与结束开关。线程管理成员变量定义如下:

Thread gameThread;

/**
* true:Pouse the game thread;
* false:Running the game thread;
*/
boolean threadPouse;

/**
* true:End the game thread;
* fasle:Running the game thread;
*/
boolean threadEnd;

通过对暂定和结束两个开关的控制可以有效的控制游戏主线程的运作,以达到控制游戏的目的。

►手势控制

由于手势的使用是基于屏幕事件的,所以需要先行处理屏幕事件,之后需要判断是否添加手势。因此需要一个手势使用开关以及一个手势探测器,其定义如下:

public boolean isUseGesture = false;
public GestureDetector gestureDetector;

在默认情况下,将手势开关关闭。

►屏幕渲染

由于屏幕渲染涉及到不同机型的移植问题,我们将在下一节单独开进行屏幕渲染的介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值