基于Android策略型游戏开发毕业设计Word文件下载.doc
《基于Android策略型游戏开发毕业设计Word文件下载.doc》由会员分享,可在线阅读,更多相关《基于Android策略型游戏开发毕业设计Word文件下载.doc(34页珍藏版)》请在冰点文库上搜索。
本设计书属于:
保密□,在年解密后适用本授权书。
不保密□。
(请在以上相应的方框内打“√”)
作者签名(手写)年月日
指导教师签名(手写)年月日
目录
Abstract:
5
摘要:
1
1.前言 1
1.1手机游戏的现状 2
1.1.1手机系统 2
1.1.2手机游戏的种类 3
1.1.3android手机的特性 3
1.2对研究课题的启发 4
2.需求分析与系统设计结构 4
2.1Android架构 4
2.2系统设计 6
2.2.1功能模块划分 6
2.2.2运行环境 7
2.2.3控制引擎 8
2.3游戏研究思路 10
2.4游戏所涉及的各个类 11
2.4.1前台表示模块的类结构 11
2.4.2游戏实体模块的类结构 12
2.4.3数据存取模块的类结构 12
2.4.4游戏工具模块的类结构 13
3.游戏实现 13
3.1游戏开始菜单页面设计 13
3.2游戏主界面设计 14
3.3数据存取模块的开发 20
3.4英雄角色模块的开发 23
3.5管理面板模块的开发 26
4.结束语 29
参考文献:
29
致谢 30
DevelopTheSimulationGameofAndroid2.1
By
LiuMuxi
April,2012
WiththerapiddevelopmentofSciTechandcultureinnowadays,peopleraisetheirrequirementsforvideogames.Fromtheearliest‘Snake’and‘Tetris’tonetworkgames,thecharmofvideogamessweptovertheworld.Moreover,theemergingsmartphonehasofferaplatformfortherapidgrowthofvideogames.Theseterminalsprovidebetterenvironmentfordevelopingmobilecasualgamesandapplications,especiallyiPhoneandAndroid.
ThisarticlewillresearchanddevelopastrategygameDynastiesinFlame,whichisbasedontheAndroidsystemprovidedbyGoogle.Adoptinggamedesign,mapdesign,thedevelopmentofSaidlayerinterfacemodule,dataaccessModuleandMapincaseofanentitymodule,thisgameisacombinationofgreatentertainmentinterfaceandlogicalcontent.
Firstlythisarticleintroducesthestrategygame’srelatedbasictheory,operationplatformandimplementationtechnique.Secondly,itmainlyresearchesthetechnicalfeatureofCaseofanentitymoduleanddataaccessmethod,whichbringshigherefficiencyonmassdataintegrationanddataassessment.Thirdly,itresearchesgraphiccomponentandaudiocomponentinordertoenhancethevisualandaudioeffectsofthegame.Lastly,itcarriesaperformancetestofdifferentmodules.
Keyword:
Android;
SimulationGame;
Smartphone;
Dataaccess
Ⅲ
Android2.1策略型游戏开发
刘沐曦
在科技文化高速发展的今天,人们对电子游戏娱乐的需求也日益高涨。
从最初的运行于掌上游戏机的“贪吃蛇”和“俄罗斯方块”到如今风靡全世界的网游无不体现了游戏的魅力。
而随着智能手机终端的涌现,更是为电子游戏提供了高速发展的平台。
特别是iPhone智能手机和Android智能手机的面世,为掌上休闲游戏与应用提供了更完善的的开发环境。
本文基于Google公司为广大智能手机开发者提供的Android系统环境,研究并开发了一款名为“烽火三国”的策略型游戏。
该游戏主要是综合使用游戏的策划,地图设计,表示层界面模块的开发,数据存取模块的开发,地图中可遇实体模块的开发,并将它们整合开发出一个具有良好娱乐界面和思维性的策略型游戏。
首先,论文介绍了实现策略游戏的相关理论基础、运行平台和实现技术;
其次,论文重点研究了可遇实体模块的技术特点及游戏数据的存取,让本游戏的大量数据更易整合,提高数据的存取效率;
再次,为了让游戏具有较强的视觉和听觉冲击,本论文研究并融入了图形图像组件和音效组件;
最后,论文对游戏的各个模块进行了功能和性能测试。
关键词:
android;
策略游戏;
智能手机;
数据存取
1.前言
随着人们生活水平的提高,以及商品的多样化更新的加快,人们对游戏娱乐已经成为了生活中不可或缺的一部分。
与此同时,人们的生活节奏也随着加快,这就直接影响了人们是否只能在电脑上玩游戏。
再加上经济全球化和智能手机的普及,人们逐渐认识到手机游戏的方便,因而手机游戏成为了人们娱乐的另一种娱乐方式[1]。
手机游戏带使人们在随时随地都能享受到它带来的乐趣,成为人们跨地域娱乐的重要渠道,因而逐渐的改变人们娱乐模式和消费观念,让手机游戏成为了当今的时尚[2]。
电脑游戏从八九十年代开始便在大家的记忆里扎根,二十年过去了,说起“贪吃蛇”和“超级玛丽”依然在脑海里根深蒂固。
近来二十年,随着计算机硬件的性能不断的提升以及软件开发者的努力,游戏作品在创意和视听效觉都有飞跃的发展。
目前电脑游戏行业非常繁荣,竞争激烈。
随着智能手机的普及,越来越多的游戏开发人员逐渐把目光转移向这个新兴行业。
目前手机游戏应用开发方面以AndroidSDK、J2MEMIDP、ObjectiveC为主流开发环境。
AndroidSDK为开发者提供大量全面的API,包括SQLite数据库操作的API,2D图形渲染的SurfaceView,3D图形图像框架OPENGLES。
论文在研究了AndroidSQLite、图形图像处理、AppWidget框架、多点触控接口、多线程等游戏相关技术的基础上融合中国古代三国历史文化实现的一款策略型游戏。
1.1手机游戏的现状
无论是出于效仿,还是迫于竞争,多数的游戏运营商也加入了手机游戏的行列,使手机游戏极具竞争性。
这样导致了个游戏研发商为了赢得最终的消费者,对手机游戏的优缺都进行了大优化。
1.1.1手机系统
现在主流的智能手机操作系统主要有Google的Android系统,苹果公司的iOS系统以及微软的WindowsMobile系列。
Android系统是Google推出的基于Linux平台的开源手机操作系统,它采用软件叠层的架构,由三层组成。
底层只提供基本功能,在Linux内核工作,由C语言开发;
中间层是由C++开发的Library和VirtualMachine;
上层是由java开发的各种应用软件,本次的设计Android游戏便是在上层开发的[3]。
iOS系统是苹果公司开发iPhone所用的操作系统,它是以Darwin为基础,主要用于苹果公司的平板产品。
iOS的系统架构为四层组成,分别是核心服务处、核心操作系统层、可轻触层、媒体层。
WindowsMobile系列操作系统是从微软计算机的Windows操作系统演化而来的。
WindowsMobile系统是微软从windows操作系统演化而来的。
使用Windowsmobile系统的智能手机大多采用英特尔嵌入式处理器,主频比较高,再加上内存、储存卡容量也比采用其他操作系统的智能手机高出很多,所以性能比强劲,速度比较快。
1.1.2手机游戏的种类
手机游戏的种类基本和电脑游戏一样,目前在手机上开发出的较为成功的游戏主要有FTG格斗游戏、PUZ益智类游戏、RPG角色扮演游戏、SLG策略型游戏五类。
其中格斗游戏诞生于街机,曾经风靡一时的“街头霸王”就是典型的代表。
FTG系统的核心是对战斗部分进行碰撞检测计算。
益智游戏需要玩家以自己的智慧对游戏的规则进行思考、判断从而通关以获得成就感[4]。
PUZ系统对玩家要求不高,是手机游戏中受众面最广的游戏,代表作品是“推箱子”。
角色扮演游戏是最能与用户共鸣的游戏,开启了一扇通往虚拟现实的大门,让玩家融入到游戏的世界里,沉浸在成长中,“仙剑奇侠传”是其经典例子。
RPG游戏的核心是代表玩家角色成长的升级系统,一个个故事情节贯穿游戏,牵动着玩家的情感。
策略型游戏没有固定的玩法,玩家根据自己的喜好排兵布阵,与敌方展开战斗。
SLG游戏的核心是游戏的不定性,完全由玩家主观意识控制,其代表作是“三国志”。
手机游戏研发的重点是游戏的情节和UI。
视觉是人的第一感知,UI的好坏直接影响人们对于游戏的第一印象,所以一个好的UI是非常重要的。
游戏的情节是一个游戏可玩性的重点,是否有内涵、有深度,有未知的东西可玩,有否求追,还是无尽的刷刷刷,关系到一个游戏的寿命。
韩国游戏就因为不重视情节,没有什么深度,所以被戏称为泡菜游戏。
游戏的操纵方面也有革命性发展,从最初按键操纵到后来的屏幕多点触控再发展到现在的重力感应操纵。
随着手机游戏的高速发展,Google公司也越来越重视游戏的开发。
在推出的Android2.3版本时增强了对游戏开发支持力度,同时提升了多媒体影音和通信功能。
增加了新的垃圾回收和优化处理事件,以提高对游戏的支持能力。
原生代码可直接存取输入和感应器事件、EGL/OpenGLES、OpenSLES、新的管理窗口和生命周期的框架。
同时还强化了SQLite数据库管理功能,更加方便游戏数据的存取[5]。
1.1.3android手机的特性
Android系统是一个处处体现与手机相关特性,应用于智能手机之上的操作系统。
AndroidSDK2.2只要的特性有:
可重用和可替换组件的程序应用框架
针对移动设备优化过的dalvik虚拟机
继承了基于开源webkit引擎的网页浏览器
经过优化的自定义2D图形库和基于openslES1.0库可选硬件加速
SQLite结构化的数据存储数据库
支持常规的音频视频多媒体格式
蓝牙、GPRS-EDGE、3G和wifi无线网络
相机、GPS全球定位、导航和感应加速器
丰富的开发环境包含设备模拟器、工具、调试器、内存和性能分析工具以及Eclipse继承开发环境插件
1.2对研究课题的启发
论文研究了AndriodSDK开发环境以及该环境下的appwidget框架、SQLite数据库、surfaceview2D图形渲染技术等手机游戏开发相关技术。
在本游戏软件中,首先运用android内嵌的SQLite数据库实现游戏数据的存取,为游戏的各个功能模块提供数据源。
本论文重点研究了两种游戏数据的存取方式,第一种方式是android内置的sqlite数据库,用于存取大容量的永久性游戏数据,提供给游戏一个安全稳定的数据源;
第二种方式是sharepreferences,是一个轻量级的数据存储,用于暂存游戏的中间数据。
二者构成游戏的数据核心。
其次通过appwidget框架的broadcast和service机制,将游戏界面映射至手机桌面,使用户更直接的体验游戏的精彩。
2.需求分析与系统设计结构
这里要讲的是android的架构,系统的需求分析与系统设计结构,分析本游戏的可运行性以及详细的介绍了烽火三国系统的结构。
2.1Android架构
Android平台大致可以划分成三个大层次,包括一个操作系统,中间件和应用程序,android是一组面向移动设备的软件包。
图2.1为android系统软件层架构图,android系统软件层由上往下分成应用程序(applications)、应用框架(applicationframeworks)、库函数(libraries)、运行时库(androidruntime)、操作系统(linuxkernel):
图2.1android软件层架构图
1.应用程序
Android将同一系列核心应用程序包一起发布,基本上都是通过JAVA语言开发的能够独立完成特别功能的应用程序。
该应用程序包包括SMS短消息程序,日历,电子地图,浏览器,联系人等基本的应用程序。
应用程序的框架组件主要包括9种:
UI组件,如按钮、文本框、标签、列表等,如果想方便高效的创建友好的用户交互界面就必须要灵活的运用这些组件;
ContentProviders内容提供者,可以简单的理解成为应用程序提供的一种服务,让服务与应用程序之间能够实现数据的共享与相互访问;
ResourceManager资源管理,android中大量的资源很多例如颜色、字体、图片、UI组件的Id、用户界面(Layoutxml)等等都被称之为资源,这些丰富的资源,都需要通过ResourceManager来统一进行管理;
NotificationManager消息通知管理,它可以在不影响用户使用设备喝正常操作的时候在系统的状态栏上自动的提供消息提示,让用户可以及时的看到;
ActivityManager活动管理,它管理着所有应用程序的生命周期,并且控制着应用程序的导航,充当一个控制器的角色。
每个Activity相当于Windows应用中的一个窗口。
通常的应用一般都是通过多个Activity交互的构成;
WindowManager窗口管理,所有启动的窗口都被其管理;
LocationManager地理位置管理是Google为开发者提供的独具特色的功能,用其管理地图相关的服务;
TelephoneyManager电话管理,为应用程序提供与电话相关的诸如来电监听之功能;
PackageManager包管理,实现软件包的安装并管理安装在系统之内的所有应用程序。
2.应用框架
开发人员也可以在自己开发的项目中直接访问应用程序所使用的API框架。
该应用程序的架构设计简化了组件的重用;
在遵循框架安全性限制的原则下,任何一个应用程序都可以发布它的功能块给任何其它的应用程序使用。
同样,该应用程序重用机制也使用户可以重构来突破原先组件的功能限制。
3.库函数/运行时库
该层内容大部分已经涉及到底层,普通的应用不需直接对此层进行操作。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
DalvikVM是android平台下的一个虚拟机。
Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。
同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的“dx”工具转化成“.dex”格式由虚拟机执行[6]。
4.Linux内核
Android的核心系统服务是在Linux2.6内核的基础上开发出来的,包括安全性,内存管理,进程管理,网络协议栈和驱动模型[7]。
驱动程序模型包含触摸屏驱动、摄像头驱动、WiFi驱动、闪存驱动、音频驱动、按键驱动、电源管理驱动、IPC驱动共八个重要驱动。
2.2系统设计
2.2.1功能模块划分
该策略型游戏应该具备有视图面板、管理面板、游戏提示、可遇实体、英雄角色、地图加载、存档与读档、公式计算、常量管理等功能。
根据游戏系统功能的需求分析,可以将系统的功能划分为4个模块。
◆前台表示模块
该模块用于游戏的画面渲染,包括视图界面、管理面板、游戏提示,面向所有的玩家,是玩家直接操作的页面。
◆游戏实体模块
该模块是游戏主要用于后台游戏逻辑,包括可遇实体模块、英雄角色模块,可遇实体模块是地图上那些可以被英雄遇到并假发一系列动作的实体,由于每个玩家的玩法不同导致成长不同,所获取的页面也会不同。
◆数据存取模块
该模块用于获取源文件信息和玩家游戏数据,包括地图加载模块和游戏的存档与读档模块。
地图加载主要是将从地图设计器中所获取的地图信息文件加载到游戏中生成地图矩阵的过程。
存档与读档用于玩家对游戏的连续性。
◆工具类模块
该模块将自身的静态类提供给游戏中的其他类使用。
本游戏中的工具类包括对常量进行统一管理的constantUtil和用于存储公式的gameformula类,游戏的公式主要是对战斗的结果、英雄体力增减等计算。
根据本系统的功能模块介绍,本游戏的系统功能模块图如图2.2所示。
烽火
三国
前台表示模块
数据存取模块
工具类模块
视图界面
游戏实体模块
游戏提示
管理面板
可遇实体模块
英雄角色模块
地图加载
存档与读取
公式计算模块
常量管理模块
图2.2烽火三国系统功能模块图
2.2.2运行环境
操作系统:
Android2.1
要求手机有足够大容量的内存。
2.2.3控制引擎
Activit是Android构造块中最基本的也是必须的一种,所有程序的流程都必须运行于Activity中。
在游戏程序中,各个Activity是层级的关系,一个Activity通常就是一个单独的屏幕。
每一个Activity都被实现为一个独立的类,并且继承于Activity这个基类。
这个Activity类将会显示由几个Views组件组成的用户接口,并对事件做出响应。
Activity是Android用户唯一可以看见的东西,几乎所有的Activity都与用户进行交互,它最主要的作用是创建显示窗口,在程序中可以通过setContentView(View)来显示在Res/Layout中自定义的UI界面,并可提取UI元素进行操作[8]。
一个游戏由若干屏幕页面组成,所以便有多个Activity。
Activity之间的可以相互切换,并通过Intent来实现通信。
Android系统是通过Activity栈来管理Activity的,在游戏的运行过程不同的Activity会经历不同的生命周期。
Activity的生命周期中本质上分为四种状态即:
(1)activity在屏幕的前景中则处于activity栈的顶端,它是active或者running状态。
(2)activity失去了焦点但是仍然可见,如这个activity顶上遮挡了一个透明的或者非全屏的activity,它的状态则是paused。
一个paused状态的activity完全是alive的。
它维护自己所有的状态和成员信息,而且仍然在windowmanager的管理中,但当系统内存极度贫乏时也会将其killed[9]。
(3)activity由于其他的activity而完全变暗,它就进入了stopped状态。
它仍然保持着所有的状态和成员的信息,可是,他对于用户来说不可见,当别的地方需要内存的时候它经常会被killed。
(4)activity是paused或者stopped,系统需要将其清理出内存的时可以命令其finish或者简单kill其进程。
当它重新在用户面前显示的时候,它必须完全重新启动并且将其关闭之前的状态全部恢复回来。
游戏在操作过程中可能会发生界面切换,遇到接电话、收发短信甚至电量不足关机等偶发情况都会影响Activity的状态。
Android系统对资源控制较严,在状态的转换时可能对资源回收,为了保证程序的正确性,必须在onPause()里写上持久层操作的代码,将游戏产生的数据都保存到存数据库中。
游戏运行中生命周期的变化而带来的其他问题也很多,例如游戏创建的线程在运行中被中断了,则可以暂停、杀掉或数据回滚来维护此线程。
因为Activity可能被杀掉,所以线程中使用的变量和一些界面元素就需要采用Android的消息机制Handler或Message来处理多线程和界面交互的问题。
Intent是Android系统中用于通信和交互的一种机制,不但可以实现不同应用间的通信与交互还可以在应用程序内部的不同Activity以及Service间实现交互。
在通信过程Intent起了一个媒介的作用,提供组件互相调用的相关信息,为调用者与被调用者解耦。
在不同应用程序交互时,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。
在本宠物游戏中不同Activity就是通过Intent来交换数据的[10]。
游戏中Activity的相互调用的动作需要在AndroidManiFest.xml的IntentFilter中进行描述,当发生调用关系时,Android会解析对应的Intent来决定如何来调用Activity,需要解析Intent属性包括以下六类:
(1)Action,指定要执行的动作。
可以是自己定义的动作也可以是系统预定义的动作。
宠物游戏中指定的通常是自定义的动作以