基于Android的迷你桌球游戏设计与实现

news2024/11/27 2:48:34

目录

摘要11

关键词11

绪论11

1 游戏开发概述22

1.1 背景22

1.2 课题来源33

1.3 国内外研究现状33

1.4 Android应用程序构成44

1.4.1 应用程序55

1.4.2 应用程序框架55

1.4.3 库与运行环境55

1.4.4 内核55

2 游戏开发平台搭建55

2.1 SDK的下载与安装55

2.2 Eclipse集成开发环境的搭建66

2.3 虚拟设备的创建与模拟器的运行77

3 游戏设计方案77

3.1 游戏开发平台77

3.1.1 硬件平台77

3.1.2 软件平台77

3.2 游戏流程图77

3.3 游戏类的设计及框架88

3.3.1 公共类88

3.3.2 辅助界面类88

3.3.3 游戏界面类99

3.3.4 情景类99

3.3.5 自定义控件及工具类99

3.4 游戏的准备99

3.4.1 图片准备99

3.4.2 音效准备99

3.5 主要功能的设计99

4 主要技术分析1010

4.1 碰撞检测及处理1010

4.2 数据库的实现1010

5 游戏测试1010

5.1 游戏测试概述1010

5.2 欢迎界面的测试1111

5.3 主菜单1212

5.4 关于界面1212

5.5 帮助界面1313

5.6 开始游戏1313

5.6.1 倒计时模式1414

5.6.2 练习模式1515

5.6.3 排行榜1515

5.7 设置1616

5.8 退出1717

5.9 游戏的优化与改进1717

总结1717

致谢1818

参考文献1818

英文摘要1919

基于Android的迷你桌球游戏设计与实现

计算机科学与技术专业学生 学生姓名:***

指导教师 ***

摘要:随着人们生活质量的不断提高以及手机和网络的普及,人们的业余生活要求也在不断提升,选择一款好玩,精美,画面优良的休闲手机游戏已经成为一种流行的休闲方式。休闲手机游戏作为一种发展智力,缓解紧张的神经、放松心情的娱乐活动已经成为覆盖年龄段最广的游戏类型之一。所以本论文结合以面向对象的开发语言Eclipse SDK的开发平台开发的一款基于Android的迷你桌球游戏。本游戏主要包含公共类、情景相关类、游戏界面类、自定义控件及工具类和辅助界面相关类几大类,共有三十个小类构成。游戏使用全触摸的方式,操作十分简单,容易上手。

关键词:Android;游戏;桌球;毕业设计

绪论:智能手机(Smartphone),它们具有独立的操作系统,用户可以根据个人的工作需求和娱乐需求,自己去安装一些功能强大而且免费的由各个软件开发运营商所提供的软件程序,从而让自己的手机变得如同个人电脑一样功能强大,同时还可以接入移动网络来体验各种乐趣。而现在除了手机,基于Android的平板电脑也开始在人群中普及,这些手机软件依然可以在平板上运行。当今社会,开发智能手机的开发商以及生产商几乎占有全球所有的手机开发厂商,比如Nokia、iPhone、RIM、Motorola、HTC等都是智能手机开发行业带头人。

智能手机具有五大特点:(1)拥有接入移动通信网络和无线网的能力[9],在国内所有的智能手机都可以接入移动公司的GSM网络、电信公司的CDMA网络、联通的网络中的一种或者多种网络,而现在3G网络几乎已经完成普及工作,4G网络也已经出现,其飞速的上网速度深得大家的好感。(2)人性化,由于智能手机用户的人群基数非常庞大,每个人对于手机的功能需求和手机所拥有的软件需求更是千差万别,然而智能手机可以满足手机用户的需求来自行更改手机的非核心系统软件。(3)开放性的操作系统,Android手机基于Android操作系统开发的手机,所以它也具有Android系统的特性,那就是开源。(4)智能手机具有丰富的功能。

2003年,Android的创始人Andy Rubin 在参与到Android的传奇性发展之前曾经说过:“在开发移动设备方面存在着巨大的潜力”,他还说过:“如果开发者足够聪明的话,他们很快就会在消费类产品中使用这些位置信息”。实际上,在当时移动通信领域早晚都会发生巨大的革命,从而会催生出我们在以前未见过的功能远比移动电话强大的智能手机,只不过有些人的目光比较长远,提前发现了这个市场的庞大。

终于,在2005年7月,Google公司收购了Android,当时在普通手机用户的世界中这只是一个小消息,经常可以见到,但是在移动设备领域有很多的高层领导和开发人员都注意到了这则消息,并且认为Google公司会有一番大动作,终于这次的收购行动成为Google公司 军军移动通信市场的一个标志,尽管这个当时由 Chris White、Nick Sears、Rich Miner 以及 Andy Rubin 四个人共同创建的一个小规模的移动软件开发公司。在现在看来,他们的怀疑是正确的。差不多在两年半以后,到2007年11月5日,Google公司给当时的移动通信设备领域带来了一场非常庞大的巨型变革风暴,因为它发布了一款基于Linux的全新的Android操作系统,这款新发布的操作系统继承了Linux操作系统的特性也是开源的。G1这款拥有摄像头、导航功能等众多Google应用程序的手机是第一款搭载 Android 操作系统的手机,G1手机的上市,标志着Google公司发起了了一场移动通信设备领域的大冒险。

Android 操作系统版本

Android 1.1 (2009 年 2 月发布)

2009年5月Android 1.5 “Cupcake”发布。因为这次的升级,手机的操作界面发生了很大的改变,给予手机用户全新的体验,所以它成为Android操作系统的一个主要版本。

HTC的 Hero这款手机搭载了Android 1.6 “Donut”在2009年9月发布。这是搭载Android操作系统的手机出现以后非常成功的例子,使得原来很多没有用过Android操作系统的人都非常的关注,但是这也让Android的众多的竞争者产生警惕心,开始更加密切的关注。

Android 2.0/2.1 于2009年10月26日发布,Android又一个主要版本的升级以创纪录的速度推出。这一次,Android操作系统有了质的改变,因为它升级到了Android 2.0/2.1。又一次的将Android推向新的高峰,让世界众多的用户眼前一亮。

Android 2.0.1 SDK 于2009年12月3日发布出来,2010年1月10日又推出了Android 2.1 版本的SDK 。之后Android 2.2版本“FroYo”(冻酸奶)也跟着发布了,至此人们已经习惯了Android操作系统地命名方法,那就是以甜点的名字来命名每一款系统的版本。这一新版本的更新也让大量其他智能手机用户垂涎三尺。时间一直到了现在,Android操作系统已经更新到了Android 5.0,智能手机也已经在全世界普及,同时Android操作系统也进入了平板电脑的市场。Android的发展历程以及现状让我们相信在未来一段时间内Android依然会作为移动通信领域的主流操作系统,并且会一直持续下去。

1 游戏开发概述

1.1 背景

我们在生活中或多或少的会接触和玩一些手机游戏,但是在市场上有众多的游戏种类,每一种手机游戏的每一款游戏都会给玩家带来不同的感受。在我们的日常生活中手机游戏已经成为必不可少的娱乐项目。游戏平台经过从古老的游戏机到电视游戏一直发展到手机游戏,在这几十年中间游戏领域的发展经历了众多的变革和更新换代。随着新兴电子技术的发展和人们生活水平的不断提高,智能手机已经开始普及并基本完成普及,现今社会青少年、青年和中年人基本上每个人都拥有一部属于自己的智能手机,而其他年龄段的人也都接触过智能手机。所以基于智能手机平台的手机游戏所拥有的市场是异常巨大的。

Android操作系统是Google公司于 2007 年 11 月 5 日所发布的基于Linux平台的开源手机操作系统,号称是首个为移动终端打造的真正开放和完整的移动软件[2]。自从Google公司发布了智能手机 Android开源操作系统以来, Android智能手机迅速地进入手机电子市场的领先行列,并将持续下去。而手机游戏作为 Android 操作系统平台的最主要的应用,预示着基于 Android 开源操作系统平台的智能手机游戏会拥有巨大的市场潜力,现阶段我国国内研究开发 Android 智能手机游戏的开发人员开始渐渐地变多,移动互联网业界及其它行业的许多知名人士都对 Android 智能手机游戏在未来很长一段时间内的发展持一种乐观的态度,更有移动互联网业界精英表示, Android 智能手机游戏将会是游戏产业经济的下一个热门阶段,也将会是手机游戏的未来,并且将一直持续下去。

1.2 课题来源

随着计算机科技和移动无线通信技术的快速发展,智能手机用户的数量越来越多,手机用户在挑选移动智能手机设备的时候己经不再仅仅拘泥于基本的通话功能和短信收发功能。而日新月异的计算机技术从某种程度上大大提高了移动智能手机设备处理数据的速度,因而可以在手机上安装更多的实用的手机软件和好玩的手机游戏。手机游戏作为手机上的众多实用软件类型之一,得到了广大智能手机用户的喜爱和下载。因此智能手机的应用软件和游戏已经被越来越多的研发机构和部门开始着手于研究开发。那些操作简洁方便、剧情简单、有利于提高人们的思维和智力的小游戏更是因为手机的硬件资源有限、玩家无法长时间连续玩游戏等特点,使得手机游戏开始普及起来。

Android操作系统平台上的手机游戏相比于其它应用软件,手机游戏用户的基本和核心需求是一样的的,这些基本的需求跟时代的变更和计算机科技的发展有着密切的关系,而跟玩家在什么地方无关。因此,绝大多数种类的手机游戏具有普变适应性。因为一部分职业游戏玩家的存在,他们会带动周围的朋友、同时也开始接触手机游戏,一部分人带动另一部分的人加入到手机游戏用户的行列,而且会持续到直到市场饱和为止。

综上所述, Android操作系统平台相比于其它智能手机平台拥有更多的优势,因为Android手机用户的数量是当今世界最多的,所以为了满足广大的Android手机用户的需求,Android操作系统就要快速的持续更新和发展,而作为Android智能手机最主要的应用软件种类之一的手机游戏,它所具有非常庞大的的市场价值。所以本次毕业设计我要做的就是一款基于Android操作系统平台的小型手机游戏。

1.3 国内外研究现状

Android 操作系统是Google公司发布的一款基于Linux平台的开源手机操作系统。不存在任何阻碍移动互联网产业创新的专有权问题。Google公司通过与开发商、设备制造商、运营商和其它有关的商家签合同从而建立合作关系,希望建立一个标准化、开放式的移动软件平台,在移动互联产业内形成一个标准化、开放式的生态系统[1]。

Google 公司制定企业战略是以Android 操作系统作为中心点进行的,为了推进“随时随地为每个人提供信息”这一目标。Google公司会推广。开发一些特殊的、实用的、深受大家喜爱的移动互联服务。开放手机联盟的成立和 Android 操作系统的推出是对当时国内外手机操作系统现状的重大变革。而且Google公司将继续努力,同时社会上的其它研发机构和开发部门也会努力地去研发一些更好、更实用、更加具有吸引力服务产品。

Android 操作系统平台在市场上的优势主要体现在以下几个方面。

  1. 开放性
    Android 平台是一款开源的操作系统的平台,它与世界上众多的手机研发厂商和生产商即开放手机联盟合作建立了一套开放式、标准化的规则。因为这种规则,所有的手机开发商都参照这种标准进行手机的开发,按照这样的情况继续发展下去,手机生产行业将会实现一体化。
  2. 平等性
    在搭载了Android操作系统的手机上,手机在出厂之初会自带一部分的应用软件,但是仅仅是这些自带的软件并不能满足人们的基本需求,所以用户会自行安装一些感兴趣的、有意思的实用型软件,安装成功后的运行状态和手机自带的功能没有任何冲突。
  3. 丰富的硬件选择
    因为Android操作系统是开源的,在手机研发和生产领域已经建立了一套所有Android手机共同遵守的规则,所以众多的生产商生产的手机配件都是标准化的,任何一个部件都拥有其替代产品,而且硬件的更换丝毫不会影响到手机软件的运行状态。
  4. 方便性
    Android系统在现在的发展特别的好,基于Android的智能手机用户数量也是最多的,因此在应用软件市场也变得非常庞大,里面的应用软件种类繁多。但是只要手机的硬件系统可以跟的上,每一款软件都可以都可以随便安装在任何一款Android手机上。
  5. 无缝结合的 Google 应用

Google公司经过了数十年的历史,现在已经叱咤互联网的世界,虽然Google已经从国内撤出,但是丝毫不会影响Google的地位。Google的服务如Google地图、搜索、邮件等手机应用程序已经成为了连接用户和互联网的重要纽带,而Google公司所推出的 Android平台智能手机将无缝结合这些优秀的、受广大人民群众喜爱的Google服务[3]。

1.4 Android应用程序构成

图 1 Android 架构模型

Android 操作系统作为一个开源的移动设备的平台,其软件层次结构自上而下分为四个层次,分别是:Linux 内核(Linux Kernel)、运行环境(RunTime)、各种库 (Libraries)、应用程序框架、应用程序(Application)[10]。如图1为Android架构模型。

1.4.1 应用程序 Android应用程序突破传统思维,它的每一个版本所带有的用户操作界面都很新颖。每个手机出厂时都带有众多的应用程序,其中有Google自己的应用软件,也有手机市场上比较主流的应用程序。应用程序可以在平等条件下创建,还可以轻松地嵌入Web,可以并行运行[5]。

1.4.2 应用程序框架 Android 的应用程序框架为应用程序层的程序开发人员提供 APIs,它实际上是一个应用程序的框架。它的上层的应用程序是用 Java 来构建的,提供了UI程序中所需要的各种控件:例如:buttons(按钮)、text boxes(文本框)、grids(栅格)、Views(视图组件)等。

一个基于 Android 平台的应用程序应该利用应用程序框架中几个部分:如 Content Provider(内容提供者)、Service(服务)、Broadcast Receiver(广播接收者)、Activity(活动)。

1.4.3 库与运行环境 Android 平台能被Android系统中不同的组件使用,是因为它包含一套标准的 C/C++库。这些功能将会通过 Android 应用程序框架来展现给程序开发人员。这些库如下:System C library、 Media Framework、Surface Manager、WebKit、SGL、3D libraries、FreeType、SQLite。 Android 平台在运行时包含了能实现Java 语言基本功能的核心库。 Android平台的运行环境Dalvik。 Dalvik虚拟机的潜在功能的实现依赖于Linux 内核,如底层内存管理和线程等。 Dalvik VM和一般的Java VM不同,Java VM执行的是Java的标准字节码而Dalvik执行的是.dex可执行文件。在可执行文件运行时,每一个应用程序都是一个进程。这二者最大的区别在Dalvik是基于寄存器的虚拟机(Register-based)[6],而JavaVM 是以基于栈的虚拟机(Stack-based)。

1.4.4 内核 Android平台使用的系统的核心服务是Linux2.6 内核来提供的,例如:网络堆栈,进程管理,内存管理,安全机制等。Android更多的是需要一些与移动设备相关的驱动程序[7]。其需要的主要驱动有:Binder IPC驱动、蓝牙驱动(Bluetooth Driver)、 摄像头驱动 (Camera Driver)、键盘驱动 (KeyBoard Driver)、WiFi驱动(WiFi Driver)、Flash驱动(Flash Driver)、音频驱动(Audio Driver)、显示驱动(Display Driver)[11]。

2 游戏开发平台搭建

2.1 SDK的下载与安装

  1. 下载JDK安装程序。http://java.sun.com/javase/downloads,此网站是SUN官方网站下可以下载最新的JDK安装程序的网站,Android开发人员可以到这里下载各种版本的JDK程序。本游戏设计所用JDK版本为7.0.210.11;
  2. 双击JDK安装程序,之后系统会弹出各种安装窗口,在窗口内部有提示步骤,根据提示安装就可以了;
  3. 打开计算机的环境变量,在系统环境变量中新建一个JAVA_HOME,将它的值设为刚刚JDK的安装目录的路径名,编辑Path,在Path默认已经存在的值后面加上刚刚JDK的安装目录下的\bin目录的路径名;
  4. 下载SDK。Android开发人员可以到官网下载最新的SDK,本游戏设计使用的版本是2.1。直接解压刚下载好的或者已经有的SDK压缩目录,我将SDK解压到“E:\1\Android”,在系统环境变量中编辑Path系统环境变量,在其中加上SDK解压目录下的platform-tools目录路径和tools目录路径,即“E:\1\Android\android-sdk-windows-4.2\platform-tools”和“E:\1\Android\android-sdk-windows-4.2tools”和如图2所示。

图2 修改环境变量

2.2 Eclipse集成开发环境的搭建

  1. 自行下载最新版的Eclipse的集成开发环境,可以到eclipse官方网站下载。本游戏设计所用的版本为3.7。
  2. 解压目录,进入并双击eclipse.exe文件,运行Eclipse,会弹出一个窗口,选择程序默认存储路径,如图3所示。
  3. 安装ADT,点击Help->Install New Software,弹出Install窗口后点击Add,,Name:随意;Location:http://dl-ssl.google.com/android/eclipseᄃ,如图4所示窗口。
  4. 将Developer Tools选中,接着按照系统提示步骤完成设置;
  5. 选择Windows->Preferences,选择左侧的“Android”,点击“Browse”按钮,选择SDK安装目录,再点击“Apply”->“OK”,即可。

图3 workspace

图4 填写ADT地址

2.3 虚拟设备的创建与模拟器的运行

3 游戏设计方案

3.1 游戏开发平台

3.1.1 硬件平台 PC机、华为C8813Q智能手机。

本游戏开发采用PC机安装所需的开发软件进行游戏代码的编写,游戏代码实现后将采用智能手机安装可执行APK程序进行游戏的测试以及初期游戏的试玩体验。

3.1.2 软件平台 Windows 7旗舰版操作系统、Android操作系统、Eclipse集成开发环境、JDK。

本游戏在Windows 7旗舰版操作系统上安装JDK程序,并使用Eclipse集成开发环境来实现基于Android操作系统的桌球游戏的代码,并将其生成APK可执行程序,去让玩家来感受桌球游戏的激情。

3.2 游戏流程图

开始

欢迎界面

主菜单

关于

帮助

开始游戏

设置

退出

倒计时模式

练习模式

排行榜

图5 流程图

3.3 游戏类的设计及框架

相比于其它类的应用软件,同等级的游戏软件的代码实现较为复杂,它拥有很多的游戏类,为了方便接下来的游戏程序开发,现在现在这里对本游戏所需的类进行概要设计,明确每个类所需实现的功能以及类之的框架。如图6所示,即为本游戏所需的类的框架图。

图6 游戏类框架图

3.3.1 公共类

  1. GameActivity该类继承并扩展了Activity类,作为本游戏的入口。
  2. Constant封装游戏的常量,便于日后游戏的维护。

3.3.2 辅助界面类

  1. WellcomeView负责欢迎界面的绘制工作,实现欢迎界面。
  2. MainMenuView游戏的主菜单,负责本游戏主菜单中虚拟按钮的绘制以及事件监听等工作。
  3. SoundControlView音效控制类
  4. HighScoreView排行榜界面,读取存储在数据库中的分数和时间并且显示出来。
  5. WinView胜利界面。
  6. FailView失败界面。
  7. AboutView关于界面。
  8. ChoiceView“开始游戏”的选项界面。
  9. HelpView帮助界面。

3.3.3 游戏界面类

  1. GameView主界面类,用来创建对象、控制线程、监听事件等。
  2. GameViewDrawThread游戏界面的主绘制线程,不断地绘制游戏的各个对象。
  3. TimeRunningThread倒计时线程。
  4. KeyThread触控监听线程,用来读取屏幕的触控状态。
  5. BallGoThread控制桌球滚动。
  6. CueAnimateThread绘制击球动画。

3.3.4 情景类

  1. Ball桌球类。
  2. Cue球杆类。
  3. Table球台类。

3.3.5 自定义控件及工具类

  1. StrengthBar力度条。
  2. Timer显示倒计时。
  3. SoundSwitchButton控制声音开关。
  4. VirtualButton虚拟按钮。
  5. DateUtil获取系统时间。
  6. ScreenScaleResult、ScreenScaleUtil控制屏幕。
  7. CollisionUtil球与球之间的碰撞检测。
  8. PicLoadUtil控制游戏所需的图片自动适应屏幕。
  9. ColorUtil力度条的颜色。

3.4 游戏的准备

3.4.1 图片准备 如图7所示,为游戏需要用到的各种图片。

图片名用途图片名用途
aim_down杆图标bmp0关于
aim_up目标图标bmp文字背景
ball00~ball152桌球breakmark冒号
bg背景choice0~choice3选项按钮
defen得分dukea~dukeb欢迎背景
gang日期分隔符go_up & go_downGo按钮
help界面背景help0帮助
left_up & left_down左微调按钮lose失败
menu0~menu4主菜单所需按钮number0~number9数字0~9
on & off开关pointer力度条指针
qiu_gan球杆right_up &right_down右微调按钮
riqi日期文字ruler力度条
table0~table12球台构成win胜利
yinxiao*音效开和音效关yinyue*音乐开和音乐关

图7 图片清单

3.4.2 音效准备 backsound.mp3、ballin.mp3、hit.mp3、shoot.mp3以上为本游戏所需要的各种音效以及音乐。

3.5 主要功能的设计

本游戏要实现的功能如下:

  1. 关于:帮助玩家了解游戏信息。
  2. 帮助:帮助玩家了解本游戏相关设置,学会如何玩本游戏。
  3. 开始游戏:在此模式下进入选项界面实现倒计时模式、练习模式、排行榜三种选项。
  4. 设置:设置游戏中音乐和音效的开关状态。
  5. 退出:退出游戏。

4 主要技术分析

4.1 碰撞检测及处理

对于一款桌球游戏来说,每个小球之间的碰撞处理是非常重要的,下面我们就来分析一下相应的处理。

在2D游戏中,我们可以将一个小球看作是一个圆,两个小球之间的碰撞可以看做是两个圆的碰撞。我们先取两个圆的中心点坐标(x1,y1)和(x2,y2),然后取得两个圆的半径之和R。计算两个圆的圆心距,公式为d2 = (x1 - x2)2+(y1 - y2)2,将R与d进行比较,如果R和d相等,则认为两个小球发生了碰撞,需要进行碰撞处理。图8为两个小球碰撞前与碰撞后的速度示意图。

图8 小球碰撞速度分析

4.2 数据库的实现

SQLite是一款嵌入式数据库引擎,因为它是开源的,所以很多开发中的数据库的都是采用SQLite。它拥有处理速度快、数据存放集中、占用资源少、支持平台多的特点。

本文数据库的实现,首先获得SQLiteDatabase对象来创建和打开一个数据库,然后对创建的数据库进行初始化工作。然后对数据库进行操作,通常包括插入新纪录、删除老纪录、修改指定记录和查询记录。

5 游戏测试

5.1 游戏测试概述

当本游戏代码完全实现以后,生成APK文件,为了检验本游戏是否能实现预期设计的基本功能,因此需要进行后期的测试,以发现本游戏中存在的BUG,解决这些问题,对程序进行优化,从而让游戏的功能以及运行时的试玩体验得到完善进而提升本游戏的质量。

对程序开发工作而言,成品软件测试是整个软件开发过程中的重要组成部分,因此对本游戏的测试贯穿于整个软件开发过程中。通常,程序开发人员在程序开发过程中会随时针对已经完成模块进行集中测试,用来保证每个模块都能实现相关的功能,这样可以让软件开发工作更加顺利,也可以让开发人员知道自己犯了哪些错误并进行改正。当一款软件开发出来之后,为了确保这款软件整体的完善性,按照软件开发工作的工作流程,一般需要软件测试员对整个系统进行测试,而在本阶段的测试主要方法就是白盒测试和黑盒测试。基于白盒测试的测试方案属于低端测试,是对各种设计细节方面的测试[4],而黑盒测试就是把要测试的对象当作一个黑盒子,只对软件的相关输入和输出数据进行完整的测试。一般情况下软件测试员进行软件测试的时候,都会将黑盒测试和白盒测试相结合,对一款软件进行完整的测试。

目前游戏开发已经越来越得到软件开发行业的重视,而在游戏的开发过程中,对游戏成品的测试一般有三种方式:第一种方法是通过游戏开发公司的内部测试人员进行测试,大部分的软件开发公司都会拥有属于自己的游戏成品测试人员,他们一般都是职业玩家,对大部分的游戏都有比较深的认识,玩的游戏种类很多,可以更好地发现游戏的隐藏BUG,从而实现游戏的测试目标;第二种方法是邀请部分玩家或游戏媒体人员对游戏的外围系统进行测试;第三种方法是游戏通过大范围的内测和公测,让更多的玩家进行试玩[8]。因为本次毕业设计的游戏属于小型娱乐游戏,人力和物力有限,所以本次的游戏测试工作主要是我自己将APK安装到手机上进行试玩和改进,然后又邀请了一些关系比较好的同学帮忙试玩,并提出宝贵的意见。

5.2 欢迎界面的测试

在手机上安装APK文件,安装完成以后运行本游戏,最先进入的就是欢迎界面,因为本游戏的欢迎界面有两幅画面,所以会等时间按先后顺序出现,因为欢迎界面所采用的图片精美,刚开始就会给玩家留下一个美好的印象,这样会让玩家在玩游戏的过程中始终拥有一个比较好的心情,这样完全达到了本次游戏设计对欢迎界面的功能的设计与实现。如图9和图10为游戏的欢迎界面。

图9 欢迎界面一

图10 欢迎界面二

5.3 主菜单

当欢迎界面一和二播放完毕后,游戏会进入主菜单的选项界面,在本界面中会有五个选项:关于、帮助、开始游戏、设置、退出。如图11即为本游戏的主菜单界面。

图11 主菜单界面

5.4 关于界面

在主菜单界面中,将“关于”选项滑到屏幕的中间位置,并且单点击“关于”选项,将会进入关于界面,本界面主要介绍了游戏开发的相关信息。如图12。

图12 关于界面

5.5 帮助界面

在主菜单中,将“帮助”选项滑到屏幕的中央位置,并且点击“帮助”选项,将会进入帮助界面。在本界面中主要介绍了桌球游戏的最基本的玩法和每一个按钮的作用。如图13,即为帮助界面运行图。

图13 帮助界面

5.6 开始游戏

单击“开始游戏”选项,将进入游戏选项界面,在本界面中存在三个选项:倒计时模式、练习模式和排行榜,点击不同的选项将进入不同的模式中。如图14为游戏选项界面。

图14 游戏选项界面

5.6.1 倒计时模式 点击“倒计时模式”,将进入正式游戏模式。

图15 倒计时模式

图16 游戏胜利界面

图17 游戏失败界面

如图15为进入倒计时模式后,游戏正在运行状态,其中右上角为游戏剩余时间倒计时。当游戏胜利并且破纪录后,游戏会弹出如图16所示窗口,送上游戏的祝福:“恭喜你破纪录了!”;但是如果游戏未在规定时间内将所有的球打进洞中或者没有超过以前的记录,游戏将弹出如图17所示窗口表示遗憾和进行激励:“请再接再厉!”。当游戏结束时,如果所有的球全都进洞,系统将会算出本局的分数并将其插入数据库中,如果规定时间结束,玩家没有将所有的球打进洞的话,本局游戏得分为零分。

5.6.2 练习模式 点击“练习模式”,游戏将进入练习模式,如图18。本次游戏将不限制时间,知道玩家将所有的球打进洞中。

图18 练习模式

5.6.3 排行榜 点击“排行榜”,游戏将弹出如图19所示窗口,排行榜分为日期和得分两部分。在倒计时模式中,玩家每一局游戏结束时,无论失败还是破纪录,游戏系统都会获取当前手机时间和本局得分,并且将这些信息插入游戏内部的数据库中,当运行“排行榜”模块时,系统从数据库中查询数据信息,并将它们按照分数从高到低排列显示在多个界面中。

图19 排行榜

5.7 设置

在主菜单界面中点击“设置”,游戏将弹出如图20所示窗口,在本窗口中,玩家可以根据个人喜好来选择将“音效”和“音乐”打开或者关闭。

图20 设置

图21 退出

5.8 退出

如图21,将退出选项滑到屏幕的中间位置,并且点击“退出”,游戏将完全退出。

5.9 游戏的优化与改进

当游戏的基本功能实现并且可以运行后,游戏存在些许的可优化内容,但是由于时间紧迫和个人能力不足,这些优化项无法进行优化。如果其他人有兴趣的话可以对以下两方面进行优化。

  1. 游戏的规则。本游戏的设计仅仅实现了最为基础的规则,那就是只要将球打进洞中即可,但是桌球的玩法和规则多种多样,比如斯诺克打法、九球打法和花式桌球打法等,各位有兴趣的话可以将这些规则算法加入游戏中,以获得更好地体验。
  2. 小球粘合现象。本游戏由于制作时间短,本人能力还略有不足,以至于玩家玩游戏时有的时候会出现小球粘合现象。如图22中红框中的两个小球碰撞在一起后,两个小球没有按照预计的路线分开,而是粘在一起导致游戏无法继续运行。

图22 小球粘合现象

总结

本次毕业设计主要研究在Android操作系统开发平台上开发一款迷你桌球游戏,该游戏的主要设计目标是要实现基本的功能,保证游戏可以正常运行。在游戏主要设计目标完成的基础下,本游戏还对游戏界面进行了相应的优化,使游戏的界面更加美观。本文主要介绍了基于Android的迷你桌球游戏的整体开发过程,包括前期的概要设计,开发环境的搭建,游戏基本功能的实现和游戏开发前的资料准备,并且分析了游戏中用到的主要技术,游戏开发完成后的整体运行测试等工作的过程。经过了以上的工作,本游戏的基本开发就已经完成了,然后只要对游戏的局部进行细微的调节与优化即可。但是,软件开发工作过程中程序是不可能十分完美的,总会存在一些缺陷,而本游戏终究发现了一个缺陷,那就是游戏过程中的小球粘合现象。因为时间和能力不足,没有对其进行完美的优化,还请见谅。

因为我以前从来没有自己做过一个完整的系统开发工作,所以通过本次毕业设计,我深深感到了一些困难,但是还是克服了这些困难完成了基本的开发工作。在开发工作完成后,我发现我对大学这几年来的知识掌握程度有了很大的提升,相信这些都会有益于我日后在社会上的工作和生活。

致谢

在这里,我衷心的感谢我的毕业设计指导老师——***老师。沈老师是我大学中嵌入式开发和Android游戏开发两门重要课程的老师,经过跟老师的课程学习让我掌握了嵌入式专业Android开发的基本知识,更是在本次毕业设计中给予了我很大的帮助。每次当我在开发过程中遇到困难的时候,老师总会及时的出现并给予指导,并且提出很多有建设性的建议让我采纳,鼓励我不要放弃,一定要坚持下去。因为沈老师的帮助,我的毕业设计和论文才能按时的完成,在这里我再一次的谢谢沈老师的帮助和指导。同时我还要感谢华清远见嵌入式学院各位老师的指导,还有我的各位同学的帮助,它们也给予了我很大的帮助。通过和各位老师和同学的探讨与分析,我学到了很多新的知识,并且加强了我对Android开发方面的理解。

最后,我衷心的祝愿各位老师和同学身体健康,工作顺利!

参考文献

[1] 吴亚峰,苏亚光. Android游戏开发大全[M]. 北京:人民邮电出版社,2012:2~3

[2] Conti J P. The Androids are coming[J]. Engineering & Technology,2008,3(9): 153~156

[3] 靳岩,姚尚朗. Google Android 开发入门与实战[M]. 北京:人民邮电出版社,2009: 5~7

[4] (美)佩腾著,张小松等译. 软件测试[M]. 北京:机械工业出版社,2006:3~26

[5] Android Developers[DB]. http://developer.android.com/

[6] Google Android Forum[DB]. http://www.androidl.net/

[7] 姚显昊,刘卫国. Android的架构和应用开发研究[M].计算机系统应用, 2008, 11(3): 51~56

[8] 赵剑平等. 电脑游戏设计教程[M]. 北京:清华大学出版社,2007:11~87

[9]彭艳. 常见智能手机操作系统及其应用开发[J]. 学术期刊,信息技术2012(1)

[10]赵亮,张维.基于Android技术的界面设计与研究[D]. 徐州:徐州建筑职业技术学院,2001

[11]车叔平. 基于Eclipse的嵌入式开发平台的研究与实现[J]. 成都:电子科技大学,2007

英文摘要

Based on the Android mini table tennis game design and implementation

Student majoring in Computer science and technology Name ***

Tutor ***

Abstract: with the continuous improvement of people's living quality and mobile phone and the network popularization, the people's amateur life requirements are also rising, choose a fun, beautiful, good images of casual mobile game has become a popular pastime.Casual mobile game development as a kind of intelligence, to relax and ease the nerves of entertainment has become a cover age one of the most popular game type.So this thesis combine the Eclipse SDK in object-oriented development language development platform to develop a mini table tennis game based on Android.This game is mainly a public class, scenario related classes, game interface, custom controls and tools and auxiliary interface related classes a few categories, a total of 30 small class.The game with full touch way, operation is simple, easy to use.

Keywords: Android.The game;Table tennis;Graduation design

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chrome 解决 主页被qsearch 拦截

原文地址:谷歌浏览器被劫持如何解决(附完美攻略) - 知乎 今天,发现Chrome浏览器主页被修改了,尝试使用设置里主页,外观设置,都没有效果。改好了,但只要一刷新,主页又恢复…

短链是什么原理?怎么实现呢?

目录一、为什么需要短链二、短链跳转访问原理三、短链生成实现方案1、自增序列算法2、Hash算法四、代码示例1、表结构及索引2、外部依赖3、Base62Utils4、DAO层5、业务层五、测试用例一、为什么需要短链 内容营销中给用户推送营销消息最常见的方式就是发短信,比如三…

Hadoop的MapReduce基本流程体验

目录 MapReduce 编程规范 Mapper阶段 Reducer阶段 Driver阶段 常用数据序列化类型 案例实施 WordCountMapper类 WordCountReducer类 WordCountDriverr 驱动类 HDFS测试 MapReduce 编程规范 用户编写的程序分成三个部分:Mapper、Reducer 和 Driver。 Mappe…

使用粒子效果动画组成模型[自定义shader实现]

文章目录优点实现思路传递给Shader的数据根据模型数据生成数据传递给Shader自定义shader 连接cpu与gpu顶点着色器 计算位置片元着色器优点 性能卓越 上一篇使用的更改坐标实现 9万个点 页面非常卡顿 光是计算9万个点坐标更替的js就已经造成了堵塞 尝试了在顶点着色器中实现动画…

大数据Kudu(五):Kudu基于Cloudera Manager安装及配置

文章目录 Kudu基于Cloudera Manager安装及配置 一、启动CM集群 二、登录ClouderaManager平台安装Kudu

TCO-PEG-RGD 反式环辛烯聚乙二醇线肽RGD

反式环辛烯(TCO)作为亲双烯体与S-四嗪(Tetrazine)在生理条件下的反应有无需催化剂、反应速率快的优点,被广泛应用于生物和材料科学的研究中。 产品名称 TCO-PEG-RGD 反式环辛烯聚乙二醇线肽RGD 中文名称 线肽-聚乙二醇-反式环辛烯 英文名称 TCO-PEG-RGD 分…

“引进来,走出去”,锦江国际集团多重创新力引领绿色新发展

2022年12月13日,由南方财经全媒体集团指导,21世纪经济报道主办的“21世纪住宿业高峰论坛(2022)暨2022(第十九届)【金枕头】酒店大赏发布典礼”在上海如期举行。锦江国际集团副总裁周维应邀出席并发表“创新…

【开源项目】SFUD--通用串口Flash驱动库的移植和使用

1.简介 SFUD 是一款开源的串行 SPI Flash 通用驱动库。由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的 Flash,提高了…

JeecgBoot部署(Nginx+Tomcat)

环境搭建JeecgBoot搭建、Linux安装Nginx、Linux安装JDK8、Linux安装MySql8、Linux安装Redis、Linux安装Tomcat9前端打包 1.进入目录:cd D:\win11\git_data\jeecg_3.4.4\jeecgboot-vue32.安装依赖:pnpm install-->node_modules3.打包编译:p…

矩阵树定理

用途 矩阵树一般用于生成树计数的问题,比如求一个无向图中生成树的个数。用矩阵树定理能极大地降低时间复杂度。 前置知识:行列式 此部分可粗略浏览,了解即可。 对于一个一阶行列式,可写作 det(a1,1)a1,1det \left( \begin{ma…

[附源码]Node.js计算机毕业设计房车营地在线管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

大数据学习:shell脚本

文章目录一、执行shell脚本1、直接执行脚本(1)绝对路径方式执行脚本(2)相对路径方式执行脚本2、利用source命令执行脚本3、利用bash或sh命令执行脚本二、shell脚本实战任务一:显示当前用户主目录1)编写脚本…

3ds Max发生闪退怎么办?

3ds Max闪退 最近,小编在后台收到了一位炫云小伙伴的反馈:“我打开3ds Max后,总是出现闪退,究竟是什么情况?”实际上,闪退也细分为多种类型。例如:打开3ds Max直接闪退(logo加载界面…

某轻工制造企业“三步走”战略,搭建一站式数据应用平台

某轻工制造企业成立于1994年,是中国轻工业塑料行业十强企业之一。该企业信息系统之间烟囱化,数据融合难、共享难,无法形成数据资产体系为企业创造价值。因此,该企业与亿信华辰合作,建设一站式数据应用平台,…

【雕爷学编程】Arduino动手做(110)---JDY-31 蓝牙模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

【Kubernetes】资源管理(命令)总结

kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。 kubernetes的本质是一组服务器集群&#xff0…

Java+Swing图书管理系统2.0

JavaSwing图书管理系统2.0一、系统介绍二、功能展示1.用户登陆页面2.首页3.图书查询4.图书入库(管理员)5.图书借还情况(管理员)6.图书证管理(管理员)7.借书(学生、老师)8.还书&#…

pikahcu靶场-12 目录遍历,敏感信息泄露,不安全的URL跳转

目录遍历,敏感信息泄露,不安全的URL跳转 目录遍历漏洞 概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称…

Netflix:用神经网络改善视频质量

点击上方“LiveVideoStack”关注我们▲扫描图中二维码或点击阅读原文▲了解音视频技术大会更多信息编者按Editors note眼看用户视频的增长将超过服务器的算力上限,既没有额外的服务器来支持,也不能对用户体验造成大的冲击,Instagram的工程师找…

C罗轮播图(HTML+CSS+JS)

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:前端案例分…