当前位置:首页 > 基于Android操作系统的飞机大战手机游戏毕业论文(设计)
图4.1 游戏的类框架
1、启动游戏,在PlaneActivity中会先进入加载界面ProcessView,然后后台加载欢迎界面WelcomView,当加载完成后屏幕切换到欢迎界面,并启动WelcoeViewThread线程生成欢迎界面的动画效果。
2、当欢迎动画播放完成后屏幕会停留在选择状态等待玩家操作。 3、当玩家单击“帮助”时将初始化帮助界面HelpView并将其显示出来。 4、当玩家大几“开始游戏”按钮时,屏幕将显示加载界面。后台将初始化游戏界面GameView,在地图信息类Maps中初始化此关卡中的所有敌机、变枪的道具、补血的道具等。
5、初始化游戏界面的同时启动GameViewBackGroundThread线程,以初始滚动游戏界面的背景图片。
6、当玩家发射炮弹或敌机发射炮弹时会创建Bullet对象,并将其添加到已知的容器中。
7、在游戏过程中如果需要显示爆炸效果,会创建爆炸效果类Explode以及ExplodeThread类来渲染爆炸效果。
8、游戏中所有类中使用的常量全部封装到常量类ConstantUtil类中。
4.2 游戏界面的框架简介
图4.2 游戏界面的类框架
1、GameView在初始化是会从Maps读取当前关卡的地图信息,包括敌机、补血道具、换枪道具等。
2、在界面初始化的同时,还需要启动MoveThread线程、GameViewBackGroundThread线程、KeyThread线程以及ExplodeThread线程。 3、GameView会在适当的时候从Plane类中读取主战飞机的信息进行绘制。 4、当主战飞机发射子弹时,会创建Bullet对象并添加到指定容器中,此时MoveThread同样需要定时改变子弹对象的位置。
5、在以上过程中,全部都需要PianeActivity的管理与ConstanUtil的参与。 4.3各个类的简要介绍
1、共有类:
Activity的实现类PlaneActivity,该类是通过扩展基类Activity实现的,是整个游戏程序的入口。
键盘监听线程KeyThread,该类为手机键盘的监听线程,每隔一段时间读取一次键盘的状态值,并根据当前键盘状态做出相应的操作
package wyf.ytl;
public class KeyThread extends Thread {
public void run() {// 重写的方法
public void setFlag(boolean flag) {// 设置标志位 }
this.flag = flag;
public KeyThread(PlaneActivity activity) {// 构造器 }
this.activity = activity; int span = 20;// 睡眠的毫秒数
int countMove = 0;// 飞机移动的计数器 int countFine = 0;// 飞机发子弹的计数器 int moveN = 3;// 每三次循环移动一下 int fineN = 5;// 每五次循环发一次子弹 PlaneActivity activity;// Activity的引用 private boolean flag = true;// 循环标志 int action;// 键盘状态码
private boolean KEY_UP = false;// 向上键是否被按下 private boolean KEY_DOWN = false;// 向下键是否被按下 private boolean KEY_LEFT = false;// 向左的键被按下 private boolean KEY_RIGHT = false;// 向右的键被按下 private boolean KEY_A = false;// A的键被按下 private boolean KEY_B = false;// B的键被按下
while (flag) {
action = activity.action;// 得到当前键盘的状态码 if (action == 19) {// 上
KEY_UP = true;
} else { }
if (action == 20) {// 下
KEY_DOWN = true; KEY_UP = false;
} else { }
if (action == 21) {// 左
KEY_LEFT = true; KEY_DOWN = false;
} else { }
if (action == 22) {// 右
KEY_RIGHT = true; KEY_LEFT = false;
} else { }
if (action == 29) {// A
KEY_A = true; KEY_RIGHT = false;
} else { }
KEY_A = false;
if (activity.gameView.status == 1 || activity.gameView.status
共分享92篇相关文档