收藏 分销(赏)

射击类手机游戏的研究与设计毕业论文设计.doc

上传人:人****来 文档编号:4972077 上传时间:2024-10-21 格式:DOC 页数:74 大小:1.91MB 下载积分:16 金币
下载 相关 举报
射击类手机游戏的研究与设计毕业论文设计.doc_第1页
第1页 / 共74页
射击类手机游戏的研究与设计毕业论文设计.doc_第2页
第2页 / 共74页


点击查看更多>>
资源描述
毕业设计说明书(论文) 院 系:     计算机工程学院 专 业:    计算机科学与技术 题 目: 射击类手机游戏的研究与设计 本文阐述了一个基于安卓平台的射击类手机游戏的研究、设计和实现过程。在众多游戏类型中,飞行射击游戏是一种很典型的游戏,这种类型的游戏操作简单,画面炫丽,根据指定的方位击中目标,能设置游戏的场景,购买和选择各种游戏道具,制定各种通关规则,制定得分标准,能记录用户信息和用户上次玩游戏的得分和排名等。  本课题基于Android系统和java语言技术,实现了一个基于安卓手机平台的飞行射击类游戏。该游戏具体包含的功能模块有:游戏开始模块、关卡选择模块、游戏进行模块、道具商店模块和排行榜模块等。 其中重点实现了碰撞检测和游戏人工智能的跟踪算法等。图形界面模块重点实现各个界面的绘制,其中涉及双缓冲绘图技术、游戏界面纵向屏幕滚动技术等。 关键字:Android系统,飞行射击游戏,Java语言,图形界面,游戏音效。 毕业设计说明书(论文)中文摘要 毕业设计说明书(论文)外文摘要 Title Designing and Completing of Mobile Telephone Games Based on Android Platform Abstract This article expounds a shooter game based on android platform of the research, design, and implementation process。 In numerous game type, flight shooting game is a very typical, this type of game, simple operation and glamorous images, according to the specified azimuth hit the mark, can set the scene of the game, buy and choose all kinds of game props, set all kinds of customs rules, formulate score standards, to record the user information and user score and ranking of last time to play games。 This topic is based on the Android system technology and the Java language, realizes a flight shooting game based on Android platform。 The game contains specific function modules include: game starts to choose the module, the module, the levels of module, prop store module and list module, etc。 The key to realize the collision detection and tracking algorithm of game ai, etc。 Key realization of each interface drawing graphical interface module, including double buffer drawing technology, vertical scroll game interface technology。 Keywords:Android system,Flight shooting mobile games,Java language, Graphical interface,Game sound。 目  录 前 言 1 第一章 系统分析 2 1.1 可行性分析 2 1.2 系统流程图 4 1.3 系统流程分析 5 第二章 系统实现技术 6 2.1 搭建开发环境(基于安卓2.2) 6 2.2 安卓系统特点 8 第三章 总体设计 10 3.1 系统流程图 10 3.2 游戏流程示意图 11 3.3 游戏类框架以及类功能 11 3.4 程序结构 17 3.5 片头动画实现 23 3.5.1 设计方法和代码 23 3.6 主菜单界面 25 3.7 开始游戏界面 29 3.8 开启和关闭声音 37 3.9 排行榜按钮 39 第四章 详细设计 41 4.1 游戏背景的滚动 41 4.2 我方飞机的移动方法 42 4.3 实体碰撞判断 43 4.3.1 设计方法 43 4.4 安卓数据库的实现 44 4.4.1 设计方法 44 第五章 测试及性能分析 50 5.1 测试过程及方法 50 5.2 测试过程 51 i 5.3 性能分析总结 52 第六章 结论 53 致 谢 54 参考文献 55 附录:英文技术资料翻译 56 ii 前 言 随着3G和4G移动通信网络的大力推广,移动设备越来越普及,伴随着移动设备硬件质量的提升,手机的其功能也越来越完善,手机端的操作系统平台也日渐火热起来。目前国内最常见的移动系统平台有IOS,Windows Phone以及当下最流行的Android系统,根据Google公司最新的移动设备操作系统市场分析,Android已占到全球64。2%的市场份额,并且这个数据仍处于上升阶段。 根据对谷歌电子市场中的Android应用程序的调查发现,该市场中绝大部分的软件都是游戏软件。Android平台的开放性及服务的免费性大大降低了安卓应用开发的门槛,使得开发者在游戏开发中投入成本相对较少。而随着技术的发展手机终端的特性使其具备了地理位置、重力感应、触摸控制等固定终端所不具备的特性,更容易开发出具有创意的游戏产品。Android设备数量的持续增长使得这个市场对优质游戏的需求也越来越大。 本课题的主要目的在于主要实现一套Android飞行射击游戏开发的解决方案,解决目前在Android游戏开发中所面临的几大问题。主要有游戏的关卡切换,游戏地图数据结构的实现、应用多种手机内置传感器进行游戏控制、游戏动画的实现、基于图形的碰撞检测、数据在手机系统和网络上存储及人工智能的实现。 在毕业设计的前期准备过程中,我搜集了安卓开发方面大量的相关资料,对Android的系统架构及特征进行了研究,对安卓的开发工具ADT有了详细的了解,安卓作为Java语言在移动端的另一种实现技术,通过对安卓开发技术的研究,让我可以掌握一门移动端的开发技术,并对自己的毕业设计课题有更深层次的了解,同时为接下来的工作打下良好的基础。 1 南京工程学院毕业设计说明书(论文) 第一章 系统分析 1.1 可行性分析 1.1.1 可行性分析意义 可行性分析最根本的任务是对以后的行动方针提出建议。如果问题最终没有可行的解决方案,分析员应该建议立即停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题值得解决,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。 可行性分析具体可分为如下四个方面: 1) 经济上的可行性:开发这个游戏是否需要很多的资金? 2) 技术上的可行性:开发这个游戏的技术是否难度很大? 3)资源上的可行性:是否可以获得卡法这个游戏所需的资源? 4)管理上的可行性:在游戏开发的过程中是否能方便查找到的需要的资料? 1.1.2 可行性分析报告 以下是将可行性分析转化为的可行性报告: 经济上的可行性: 由于安卓系统的开源性,对于系统方面无需再额外投入多余的资金,现在使用安卓系统以及安卓游戏的的用户越来越多,各种各样的应用市场存在着大量的机遇,此时开发一款简单易用的安卓游戏存在着很高的成功率,有着如此庞大的安卓用户群和免费易用的推广平台,正是我选择这个毕设课题的原因。 技术上的可行性: 开发所使用的Java语言是一种跨平台的语言,java先天就具有很大的优势,其面向对象的特性也便于学习和使用。Android系统的开发过程中就是以Java为核心语言的系统,所以使用java对于开发安卓类的软件有很大的优势。 ADT是一款google公司为安卓程序员专门开发的工具,功能已经相当成熟,并且得到业界的广泛承认,是安卓开发人员的重要工具。 综上所述,本系统采用Java作为开发语言,使用ADT作为开发过程中所使用的默认工具。 资源上的可行性: 开发本系统无需特殊设备与环境,开发所需要的设备和资源都可以分方便的获得,所以资源上具有可行性。 管理上的可行性: 现在市面上有好多的安卓方面专业的资料,学校图书馆内也有很多的讲述安卓开发的书籍。所以在开发的过程中需要获得资料的过程也很方便。因此在管理上也具有可行性。 1.2 系统流程图 1.2.1 系统流程图如下 图 1-1 系统流程图 1.3 系统流程分析 1.3.1 开场动画 开场动画播放的是一段存储在SD卡的plane文件夹下的视频,在开场动画播放的过程中可以选择跳过或者看完,跳过的方法为点击屏幕任意位置,当动画播放完成或者跳过后,游戏会自动进入选择界面。 1.3.2 选择界面 选择界面上有四个按钮,分别为:开始游戏按钮,声音开关按钮,排行榜按钮,还有道具商店,每个按钮都对应各自的功能。开始游戏按钮可以进入游戏的界面,声音开关按钮可以控制声音的开启和关闭,排行榜按钮可以看历史积分的排行,道具商店按钮可以对飞机和子弹的等级等进行购买。 1.3.3 关卡选择界面 关卡选择界面可以选择相应的关卡,只有已经通关的关卡才可以直接进入,未通关的关卡按钮显示为灰色,且不可以直接进入,已通关的最大关卡数会存储在数据库中, 1.3.4 游戏进行界面 点击开始游戏后,玩家就可以进入游戏界面,玩家可以控制一架飞机,有初始血量,子弹无限,当消灭完一定数量的敌机后,会出现boss,当boss被消灭掉后,会进入下一关,游戏总共有六关。 1.3.5 通关界面 当玩家通过总共的六关后,会进入通关界面,该界面有背景图片和背景音乐,且会显示玩家的总积分。 1.3.6 排行榜界面 排行榜界面,会显示玩家历史积分排行,且没有重复,最多有八个,按从大到小排列,这些数据都是存储在数据库中。 1.3.7 商店界面 商店界面,可以对飞机、子弹等级、超级子弹数量等进行购买,可查看个人的总金币数量,购买相应道具的时候会扣除对应金币,商店界面右下角有一个小锁按钮,该功能为游戏数据重置键,可对游戏数据进行重置。 第二章 系统实现技术 2.1 搭建开发环境(基于安卓2.2) 安装准备下载相关软件: 1)JDK 2)ADT 3)安卓手机驱动 安装步骤 第一步:安装JDK 1.7 第二步:安装ADT 第三步:安装安卓手机驱动 第四步:测试是否连接成功 2.1.1 安装JDK 首先去oracle官网下载最新版本的jdk,网址为http://www.oracle. com/technetwork/java/javase/downloads/index.html。 图 2-1 下载jdk 安装jdk 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)。 安装完jdk后配置环境变量 计算机→属性→高级系统设置→高级→环境变量。新版的jdk只需配置path路径即可。 图 2-2 配置环境变量 Path需要定位到jdk安装路径下的bin目录下,保存后打开一个cmd窗口输入 java -version(java和-version之间有空格)若如图所示显示版本信息,则说明安装和配置成功。 图 2-3 配置成功 2.1.2 安装ADT 到ADT的官网下载ADT工具,网址为 图 2-4 下载ADT ADT是一个绿色版的开发工具,下载ADT包可以快速开始开发应用程序,且无需其他配置。 2.1.3 安装安卓手机驱动 由于使用avd(安卓虚拟化设备)来开发测试存在各种不足之处,通过查阅相关资料,我发现,开发安卓应用的时候可以直接通过真机来测试,可大大提高开发效率。本人使用的是小米2s通过豌豆荚手机助手来安装手机驱动,在手机连接电脑前需打开手机里的调试模式开关。至此安卓开发环境搭建完毕。 2.2 安卓系统特点 1、应用程序框架支持组件的重用与替换 这样我们就可以把系统中我们不喜欢的应用程序替换删除,安装我们自己喜欢的应用程序。 2、Dalvik虚拟机专门为移动设备进行了优化 Android应用程序由java编写,编译的类文件通过DX工具转换成一种后缀名为。dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于java虚拟机的速度要快上很多。 3、内部集成浏览器基于开源的webkit引擎 有了内置的浏览器,这将意味着wap应用的时代将结束,真正的移动互联网时代已经来临。手机就是一台小电脑,可以在网上任意遨游。 4、优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES 1.0强大的图形库给游戏开发者带来了福音,在3G时代最为重要的应用莫过于手机上网和手机游戏。 5、SQLite用作结构化的数据存储 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合。 6、多媒体文件的支持丰富 支持包括常见的音频,视频和静态映像文件格式,如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF。 7、GSM电话(依赖于硬件)功能 8、蓝牙(Bluetooth),EDGE,3G,Wifi(依赖于硬件)功能 9、照相机,GPS,指南针和加速度计(依赖于硬件)功能 10、丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表和Eclipse集成的开发环境插件。 11、丰富的开发包 Google提供了Android开发包SDK,其中包含了大量的类库和开发工具,以及针对Eclipse的可视化开发插件ADT。 第三章 总体设计 3.1 系统流程图 开始游戏 => 被击落,游戏失败 打败boss,进入下一关或者通关界面。 图 3-1 系统流程图 3.2 游戏流程示意图 图 3-2 游戏流程图 3.3 游戏类框架以及类功能 在游戏的设计中主要使用了以下四个类,分别是: 1)实体类 2)实体管理类 3)界面类 4)工具类 类文件的具体解析如下: 3.3.1 实体类---------com.zjj.plane.enemy包 表3-1 实体类 Boss boss的实体类,定义了boss的图片,boss的坐标移动方法等。 BossBullet boss发射的子弹类,定义了子弹的图片,坐标运行的方法等。 BossExplode boss发射的子弹类,定义了子弹的图片,坐标运行的方法等。 BossWaring boss警告的实体类,定义了boss出现之前的警告动画的图片,动画的坐标等。 Enemy 敌机的实体类,定义了敌机的图片,移动方法,坐标,血量等信息。 EnemyBullet 敌机发射的子弹的实体类,定义了敌机的子弹的图片,坐标,移动方法等。 Missile 导弹的实体类,定义了导弹的图片,坐标,移动方法等。 MyBullet 我的飞机子弹的实体类,定义了我的飞机的子弹的图片,坐标等信息。 MyPlane 我的飞机的实体类,定义了我的飞机的图片坐标,血量,等级等信息。 PlaneExplode 飞机的爆炸实体类,定义了我的飞机盒敌机爆炸的动画的图片坐标等信息。 实体类的作用是表明游戏中各个具有属性和方法的具体元素,他们属性的改变和方法的运行改变着游戏的显示效果。它们充当着MVC架构中的model层。 3.3.2 实体管理类-----com.zjj.plane.manage包 表3-2 实体管理类 BackGroundManage 游戏背景的管理类,控制游戏背景的图片的滚动等。 BossBulletManage boss子弹的管理类用于控制子弹的发射以及子弹的存活状态。 BossExplodeManage boss爆炸的管理类,boss爆炸的动画的播放等。 BossManage boss的管理类,管理boss的出现及存活状态,绘画出boss及其移动。 BossWaringManage boss警告的管理类,管理boss警告绘画自己的方法等。 CloudManage 游戏中的云层管理类,该类较为简单,所以未设计云层的实体类,而直接写它的管理类,定义了云层的图片,运动方法及云层的绘画自己的方法。 EnemyBulletManage 敌机子弹的管理类,该类提供了子弹的绘画自己的方法,及获得所有子弹的实体类的方法。 EnemyManage 敌机的管理类,该类提供了绘画敌机的方法,及返回所有敌机实体的方法。 MissileManage 导弹的管理类,该类提供了导弹的绘画自己的方法以及获得一个导弹实体以及获得所有导弹实体的方法。 MyBulletManage 我的飞机的子弹的管理类,提供了子弹类的实例化方法以及绘画自己的方法,也提供了返回一个子弹的实体类的方法以及返回所有子弹实体类的方法。 MyPlaneManage 我的飞机的管理类,提供了我的飞机类的实例化方法,以及我的飞机的移动方法。 PlaneExplodeManage 飞机爆炸的管理类,提供了实例化所有爆炸的方法,及绘画自己的方法,以及还有返回一个有效的爆炸实体类的方法。 SuperBulletManage 超级子弹的管理类,定义了超级子弹的所有属性参数以及绘画自己以及移动的方法。 实体管理类作为在游戏中管理各个实体集合的控制类,有些实体类在游戏的进行中只会生成少量的对象,为了简化代码,这些实体,我直接给了他管理类,免去了实体类,实体管理类在MVC架构中充当着controller层。 3.3.3 界面类--------com.zjj.plane.view包 表3-3 界面类 GameActivity1 游戏第一关的图形界面类,定义了第一关的图像界面中的所有元素。定义了成功时跳出的下一关窗口,还有失败的时候跳出的失败窗口。 GameView1 游戏第一关界面的布局等参数,界面中的所有参数,游戏第一关中用到的所有的线程。我的飞机的控制移动方法等。 GameActivity2 游戏第二关的图形界面类,定义了第二关的图像界面中的所有元素。定义了成功时跳出的下一关窗口,还有失败的时候跳出的失败窗口。 GameView2 游戏第二关界面的布局等参数,界面中的所有参数,游戏第二关中用到的所有的线程。我的飞机的控制移动方法等。 GameActivity3 游戏第三关的图形界面类,定义了第三关的图像界面中的所有元素。定义了成功时跳出的下一关窗口,还有失败的时候跳出的失败窗口。 GameView3 游戏第三关界面的布局等参数,界面中的所有参数,游戏第三关中用到的所有的线程。我的飞机的控制移动方法等。 GameActivity4 游戏第四关的图形界面类,定义了第四关的图像界面中的所有元素。定义了成功时跳出的下一关窗口,还有失败的时候跳出的失败窗口。 GameView4 游戏第四关界面的布局等参数,界面中的所有参数,游戏第四关中用到的所有的线程。我的飞机的控制移动方法等。 GameActivity5 游戏第五关的图形界面类,定义了第五关的图像界面中的所有元素。定义了成功时跳出的下一关窗口,还有失败的时候跳出的失败窗口。 GameView5 游戏第五关界面的布局等参数,界面中的所有参数, 游戏第五关中用到的所有的线程。我的飞机的控制移动方法等。 GameActivity6 游戏第六关的图形界面类,定义了第六关的图像界 面中的所有元素。定义了成功时跳出的下一关窗口, 还有失败的时候跳出的失败窗口。 GameView6 游戏第六关界面的布局等参数,界面中的所有参数,游戏第六关中用到的所有的线程。我的飞机的控制移动方法等。 IndexActivity 游戏的菜单选择界面,定义个按下各个按钮的功能,初始化数据库里的参数等。 IndexView 游戏菜单选择界面,初始化屏幕的大小,初始化菜单学者界面的布局等。 LevelSwitchActivity 关卡选择界面的定义类,定义了按下关卡选择界面上的各个按钮以及底部的返回主菜单的按钮后的动作等。 LevelSwitchView 关卡选择界面布局类,定义了关卡选择界面上各个元素的排列方式,开启了一个不停重绘界面的线程等。 RankActivity 排行榜界面的定义类,定义了界面下方的返回主菜单按钮的点击后的操作。 RankView 排行榜界面的布局类,定义了排行榜界面如何布局,以及从数据库中获得参数并在界面上显示的方法。 ShopActivity 商店界面的定义类,定义了点击商店界面上的各个购买按钮后的操作以及底部的返回主页按钮的操作。 ShopView 商店界面的布局文件,定义了界面中各个元素的图片坐标等参数,以及开启了一个重绘界面的线程。 VideoActivity 片头动画的定义类,定义了游戏片头动画的播放方式以及参数,视频的路径等。 WinActivity 通关界面的定义类,定义了通关界面的参数,以及界面底部的返回主菜单按钮的操作等。 WinView 通关界面布局文件,定义了界面的布局,以及背景图片、背景音乐等。 界面类表示着在游戏中出现的各个界面,其中也定义了各个实体在游戏界面中的显示方法。界面类在MVC架构中充当着view层。 3.3.4 工具类----------com.zjj.plane.util包 表3-4 工具类 DButil 连接数据库的工具类,定义了连接数据库的方法,以及游戏中需要用到的一些数据库的操作等。 RamCheck 碰撞检测的工具类,定义了两个矩形是否碰撞到的方法。 工具类表示着在游戏中一些公用方法的类,单独提取出来便于代码的复用。 3.4 程序结构 3.4.1 程序的类文件 图 3-3 程序类文件 3.4.2 程序的图片资源文件 图 3-4 程序图片资源文件 图 3-5 程序图片资源文件 3.4.3 程序的音频资源文件 图 3-6 程序音频资源文 如图所示,本程序运行在我的手机的android4.1.1环境下 图 3-7 关于手机界面 3.5 片头动画实现 3.5.1 设计方法和代码 欢迎动画界面有一个点击检测事件,点击屏幕任意处跳过片头动画进入菜单选择界面。 图 3-8 片头动画 以下为主要代码:(具体作用已注释) public class VideoActivity extends Activity implements SurfaceHolder.Callback { String path = "/sdcard/plane/mv.mp4"; //定义视频在手机里的路径 SurfaceHolder surfaceHolder; //surface的抽象接口 MediaPlayer mediaPlayer; //音频,视频播放对象 SurfaceView surfaceView; //surfaceView绘图容器 int i = 1; public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //实现全屏 super.onCreate(savedInstanceState); //调用父类的onCreate方法 setContentView(R.layout.video); //调用XML的布局文件 surfaceView = (SurfaceView) findViewById(R.id.surfaceView);//获得xml文件里的surfaceView的对象 surfaceHolder = surfaceView.getHolder();//SurfaceHolder接口来访Surface surfaceHolder.addCallback(this);//添加回调 mediaPlayer = new MediaPlayer();//实例化mediaPlayer mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ @Override public void onCompletion(MediaPlayer mediaPlayer) { Intent intent = new Intent(VideoActivity.this, IndexActivity.class);//封装跳转 startActivity(intent);//跳转 VideoActivity.this.finish();//结束当前界面 } }); }//检测视频播放完成 @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == 1) { Intent intent = new Intent(VideoActivity.this, IndexActivity.class); startActivity(intent); this.finish(); } return super.onTouchEvent(event); }//触摸事件 private void playVideo(String strPath) {// 自定义播放影片函数 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDisplay(surfaceHolder);// 设置Video影片以SurfaceHolder播放 try { mediaPlayer.setDataSource(strPath);//设置视频路径 mediaPlayer.prepare();//视频准备缓冲 } catch (Exception e) { e.printStackTrace(); } if (!mediaPlayer.isPlaying() && i == 1) { mediaPlayer.start();//视频开始播放 i++; } } public void surfaceCreated(SurfaceHolder arg0) { playVideo(path);//界面生成的时候开始播放 } ...... 3.6 主菜单界面 3.6.1 设计方法和代码 主菜单界面有一个动态的飞机效果,下方有四个按钮,分别为,开始游戏,声音开关(当前为开启,则显示关闭声音,反之则相反),排行榜按钮,道具商店。 以下为主要代码:(具体作用已注释) public class IndexActivity extends Activity { public static boolean voice = true; //声音开启 public static int money; //总金钱数 public static int supernum; //超级子弹的数量 public static int planelevel; //飞机等级 public static int bulletlevel; //子弹等级 public static int level = 1; //关卡等级 public static int maxlevel = 1; //已通过最大关卡数 public static int btnpressed_soundid; //按钮按下的提示音 public static SoundPool mSoundPool; //声音的pool public static Vibrator vibrator; //振动器 public static int score = 0; //总积分初始为0 private IndexView indexView; private int i = 1, x = 0, y = 0; public DButil dbUtil = null; //实例化数据库连接对象 图 3-9 主菜单 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dbUtil = new DButil(this); Cursor cursor = dbUtil.selectPlane(); //获得游标 vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); //获得振动器 需在 AndroidManifest.xml 中配置 while (cursor.moveToNext()) { //游标指针指向下一个 maxlevel = cursor.getInt(cursor.getColumnIndex("maxlevel")); int sound = cursor.getInt(cursor.getColumnIndex("sound")); if (sound == 1) { voice = false; //sound在数据库中0表示开启 1表示关闭 i = 0; } else { voice = true; i = 1; } money = cursor.getInt(cursor.getColumnIndex("money")); supernum = cursor.getInt(cursor.getColumnIndex("supernum")); planelevel = cursor.getInt(cursor.getColumnIndex("planelevel")); bulletlevel = cursor.getInt(cursor.getColumnIndex("bulletlevel")); } dbUtil.closeDB();//关闭连接 indexView = new IndexView(this); mSoundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 100); btnpressed_soundid = mSoundPool.load(this, R.raw.btnpressed, 0); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏 setContentView(indexView); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == 1) {//指代触摸离开时 x = (int) event.getX(); y = (int) event.getY();//获得离开时的坐标 // 开始游戏 if (x >= indexView.btnX && x <= indexView.btnX + indexView.startgame.getWidth() && y >= 650 && y <= 650 + indexView.startgame.getHeight()) {//如果坐标在开始游戏的按钮内 if (IndexActivity.voice) { mSoundPool.play(btnpressed_soundid, 1, 1, 0, 0, 1); //播放按下的提示音 } Intent intent = new Intent(IndexActivity.this, LevelSwitchActivity.class);//封装跳转到游戏界面 startActivity(intent);//发起跳转 this.finish();//关闭当前界面 } // 声音开关 if (x >= indexView.btnX && x <= indexView.btnX + indexView.startgame.getWidth() && y >= 800 && y <= 800 + indexView.startgame.getHeight()) {//坐标在声音开关按钮上 i++; if (i % 2 == 0) { indexView.sound = BitmapFactory.decodeResource(
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服