基于android操作系统的飞机大战手机游戏毕业论文(设计)(编辑修改稿)内容摘要:

se 解压后目录中的 然后启动,选择 Eclipse 菜单中的Help Install New Software 选项卡上的 Available Software,点击 右侧的“ Add” 输入 Work with” 下拉菜单中选择刚才输入的网址。 过一会就会出现一个 Developer Tools选项,勾上以后点击 Next 以后 Eclipse 会自动网上查找 Android 开发工具插件,然后找到Android DDMS 和 Android Development Tools,选中这 两个点击 Finish, Eclipse就会自动下载并安装 Android 插件了,最后会提示重启 Eclipse。 ③重启后选择 Eclipse菜单中的 Windows Preferences 在左侧的 Android项目中 SDK Location 中填入 Android SDK 解压后的目录,然后点击 Apply。 ④ 在 WindowsXP 的系统变量中的 path 变量中添加一个值,该值指向解压后的 Android SDK 目录下的 tools 文件夹。 四、游戏所需类的分析与实现 游戏的框架简介 12 图 游戏的类框架 启动游戏,在 PlaneActivity 中会先进入加载界面 ProcessView,然后后台加载欢迎界面 WelView,当加载完成后屏幕切换到欢迎界面,并启动 WelcoeViewThread线程生成欢迎界面的动画效果。 当欢迎动画播放完成后 屏幕会停留在选择状态等待玩家操作。 当玩家单击“帮助”时将初始化帮助界面 HelpView 并将其显示出来。 当玩家大几“开始游戏”按钮时,屏幕将显示加载界面。 后台将初始化游戏界面GameView,在地图信息类 Maps 中初始化此关卡中的所有敌机、变枪的道具、补血的道具等。 初始化游戏界面的同时启动 GameViewBackGroundThread 线程,以初始滚动游戏界面的背景图片。 当玩家发射炮弹或敌机发射炮弹时会创建 Bullet 对象,并将其添加到已知的容器中。 在游戏过程中如果需要显示爆炸效 果,会创建爆炸效果类 Explode 以及ExplodeThread 类来渲染爆炸效果。 游戏中所有类中使用的常量全部封装到常量类 ConstantUtil 类中。 游戏界面的框架简介 13 图 游戏界面的类框架 GameView 在初始 化是会从 Maps 读取当前关卡的地图信息,包括敌机、补血道具、换枪道具等。 2 、 在 界 面 初 始 化 的 同 时 , 还 需 要 启 动 MoveThread 线程、GameViewBackGroundThread 线程、 KeyThread 线程以及 ExplodeThread 线程。 GameView 会在适当的时候从 Plane 类中读取主战飞机的信息进行绘制。 当主战飞机发射子弹时,会创建 Bullet 对象并添加到指定容器中,此时MoveThread 同样需要定时改变子弹对象的位置。 在以上过程中,全部都需要 PianeActivity 的管理与 ConstanUtil 的参与。 各个类的简要介绍 共有类: Activity 的实现类 PlaneActivity,该类是通过扩展基类 Activity 实现的,是整个游戏程序的入口。 键盘监听线程 KeyThread,该类为手机键盘的监听线程,每隔一段时间读取一次键盘的状态值,并根据当前键盘状态做出相应的操作 package。 14 public class KeyThread extends Thread { 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的键被按下 public KeyThread(PlaneActivity activity) {// 构造器 = activity。 } public void setFlag(boolean flag) {// 设置标志位 = flag。 } public void run() {// 重写的方法 while (flag) { action =。 // 得到当前键盘的状态码 if (action == 19) {// 上 KEY_UP = true。 15 } else { KEY_UP = false。 } if (action == 20) {// 下 KEY_DOWN = true。 } else { KEY_DOWN = false。 } if (action == 21) {// 左 KEY_LEFT = true。 } else { KEY_LEFT = false。 } if (action == 22) {// 右 KEY_RIGHT = true。 } else { KEY_RIGHT = false。 } if (action == 29) {// A KEY_A = true。 } else { KEY_A = false。 } if ( == 1 || == 3) { if (countMove == 0) {// 每 moveN次移动一次 if (KEY_UP == true) {// 向上键被按下 // 检测在不碰到上边界的情况下 16 if (!((() .getSpan()) )) { // 向上移动 10个像素 .setY(() ())。 } // 通过 dir更换图标 ()。 } if (KEY_DOWN == true) {// 向下键被按下 if (!((() + .getSpan()) ())) { .setY(() + ())。 } ()。 } if (KEY_LEFT == true) {// 向左键被按下 if (!((() 17 .getSpan()) 40)) { .setX(() ())。 } } if (KEY_RIGHT == true) {// 向右键被按下 if (!((() + .getSpan()) ())) { .setX(() + ())。 } } //水平态 if (KEY_RIGHT == false amp。 amp。 KEY_LEFT == false amp。 amp。 KEY_DOWN == false amp。 amp。 KEY_UP == false) { ()。 } //如果按下 a键发射子弹 if (countFine == 0) {// 每 fineN发一次子弹 if (KEY_A == true) {/。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。