基于安卓推箱子游戏的设计与实现.docx

上传人:b****7 文档编号:24985671 上传时间:2023-06-03 格式:DOCX 页数:29 大小:1.24MB
下载 相关 举报
基于安卓推箱子游戏的设计与实现.docx_第1页
第1页 / 共29页
基于安卓推箱子游戏的设计与实现.docx_第2页
第2页 / 共29页
基于安卓推箱子游戏的设计与实现.docx_第3页
第3页 / 共29页
基于安卓推箱子游戏的设计与实现.docx_第4页
第4页 / 共29页
基于安卓推箱子游戏的设计与实现.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于安卓推箱子游戏的设计与实现.docx

《基于安卓推箱子游戏的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于安卓推箱子游戏的设计与实现.docx(29页珍藏版)》请在冰豆网上搜索。

基于安卓推箱子游戏的设计与实现.docx

基于安卓推箱子游戏的设计与实现

毕业设计

(2016届)

 

题目:

基于安卓推箱子游戏的设计与开发

学院XXxxXX

专业XXxxX

年级XXxxXX

学生学号XXxxXX

学生姓名XXxxXX

指导教师XXxxXX

XX年XX月XX日

摘要

如今,伴随着GoogleAndroid操作系统的盛行,基于AndroidSDK的系统开发和基于Android应用的开发等已倍受大家关注.但是目前基于Android游戏开发的市场还是不够成熟的,因而一款休闲娱乐、锻炼思维且适应于Android操作系统的游戏必将成为主流.在这个快速发展的社会坏境中,生活节奏飞快,人们需要适当的慢下来,本篇文章是结合EclipseSDK开发平台开发的一款基于安卓平台的推箱子小游戏.该游戏主要分为初始化模块,界面模块,数据存储模块,功能模块及游戏控制模块.玩家通过控制小人的移动来推动箱子,将所有箱子都推到目的地从而过关.每关的难易程度不同,可保持玩家对游戏的新鲜感,本游戏不仅是适合各类人群休闲娱乐的活动,还有助于提高人们思考问题能力与想象力,改善思维方式,拓展思维.

关键词:

安卓推箱子Eclipse

 

Abstract

Recently,alongwiththeprevalenceofGoogleAndroidoperatingsystem,thepublichasimmenselyconcernedonthedevelopmentofapplicationsthatbasedonAndroidSDKsystemsandAndroidapplication.Inthisrapiddevelopmentofsocialenvironment,thefastpaceoflife,peopleneedtobeappropriatetoslowdown.ThisissueisaSokobangame,whichisdevelopedforAndroidsystemandisinventedbasedonthecombinationofEclipseSDKdevelopmentplatform.playershavetocontrolthemovementofaturtletopushaboxandtoputallboxesintotherightdestination.Particularly,thedifficultyofeachlevelisseparateddifferently,whichmaintainthefreshnessofthegame.Thegameisnotonlysuitableforallkindsofpeopleforleisuretime,butalsocanhelppeopletoexpandimaginationandtoimprovecreativethinking.

KeyWords:

AndroidPushBoxEclipse

目 录

1.绪论

1.1研究背景和意义

本课题来源于一款来自日本的古老游戏——推箱子,其设计目的是训练人的逻辑思维能力.游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置.稍不小心就会出现箱子无法移动或者通道被堵住的情况,这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务.但任务的完成还需要玩家头脑清晰,在最少的步骤之下完成所有箱子的定向移动.这就需要玩家开动脑筋,在大脑中模拟游戏中人物的行走路线.而推箱子游戏是目前比较流行的游戏之一,很多操作系统或者流行软件都会带有这种游戏.它既能锻炼思维的严密性,又有很多乐趣.我个人也比较喜欢玩这个游戏,因此,我就借这个机会将这个推箱子游戏用安卓语言实现了出来,然而随着计算机游戏的发展,很多编程爱好者基于该游戏的思想开发了出各种版本、各种类型的推箱子.这其中也包括很多手机版本的实现,伴随着手机与计算机的普及,很快推箱子游戏便进入了千家万户.

推箱子游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎.本文基于Android技术和eclipseSDK开发环境,开发了一个操作简单、界面美观、功能较齐全、可在AndroidSDK2.2平台上运行的推箱子游戏.整个游戏包含了两个公共类,主菜单界面相关类,游戏界面相关类,在这个游戏的设计过程中,可以加深我对安卓语言的应用,提升了我的代码编程能力,在整个游戏的开发过程中我查阅了很多资料,请教了好多同学,开发这个游戏增强了我的动手能力.通过该游戏的设计过程,培养了我的结构化程序设计的思想,加深对安卓语言基本语言要素和流程结构的理解,针对安卓语言中的重点和难点内容进行了训练,让我独立完成有一定工作量的程序设计任务,得到软件工程的综合训练,提高了我解决实际问题的能力.

1.2国内外研究状况

Android是由Google为首的OHA(OpenHandsetAlliance)推出的一款开放的嵌入式操作系统平台,从2008推出的androidSDK1.0到现在,AndroidSDK的最新版本已经升级到了最新的2.3,Android正以前所未有的速度聚集着来自世界各地的开发者,越来越多的创意被应用到Android[1]应用程序的开发中,大有席卷整个手机产业的趋势.说到Android系统,Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件.Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型.由于Android带有相当浓郁的Linux血统这也就意味着他拥有开源Linux的众多优点:

安全、运算速度快、易于开发等等.

正因为Android具有上述的优点,所以它在国内具有相当强劲的竞争优势.青年网络的主要负责人潘长华先生说到:

Android作为一款十分优秀的移动开发平台十分适合国内的开发环境.尤其是中小企业开发团队低成本以及源代码的分享可以为企业节省大量资金,这对于中小企业来说无疑是最大的诱惑.青年网络推出的"星网睿话"就是国内成功的Android开发产品.同时一个资深的Android开发爱好者告诉记者:

如果你是个人开发爱好者,那么Android就是Google为你量身打造的,放弃闭源的种种吧,开源才是王道,Android才是未来的主宰.伴随着GoogleAndroid操作系统的盛行,国内外的开发团队也逐渐的壮大起来了,基于AndroidSDK的系统开发,基于Android应用的开发等已逐渐倍受大家关注,而手机游戏开发历来是移动开发中分量最重的部分,面对如此火爆的Android市场自然也不甘示弱,由于Android的应用层开发是基于Java的开发,所以必有其可以快速移植J2ME开发的游戏的优势,但是移植的游戏必定也不能发挥Android操作系统独特的特性,所以目前基于Android游戏开发的市场还是不够成熟的,面对这种情况,在了解AndroidSDK基础上,我打算开发一款完全适应于Android操作系统的推箱子益智游戏,此游戏采用OpenGL技术,实现2.5D斜视角的立体视角,采用SQLite轻量级数据库存储技术等质在为Android量生打造一款独特的游戏.

1.3本文主要工作内容

本文首先对系统所涉及到的基础理论知识进行阐述,并在此基础上进行了系统分析.系统分析是平台开发的一个不可缺少的环节,为了能够使本系统更好、更完善的被设计出来,就必须先进行调查研究.在系统调查的基础上,对新系统的功能进行系致的分析,从而才能够开发出完整的系统设计.本平台利用了现在比较广泛的安卓语言实现的.其次考虑到系统实施的可行性,在软件方面我选择了如今比较流行的Android来进行开发管理平台的设计,使用Eclipse进行开发,Eclipse是非常成熟的开发工具,因此无论在可用性还是可靠性方面都毋庸置疑.

2.相关技术简介

2.1Android技术

Android是一种以linux为基础的开放源代码操作系统[2],主要使用于便携设备.目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”.Android操作系统最初由AndyRubin开发,最初主要支持手机.2005年由google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上.Android的主要竞争对手是苹果公司的iOS以及RIM的BlackberryOS.2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一.2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%.并且Android支持多种操作系统[3-4].

Android的系统架构和其它操作系统一样,采用了分层的架构.android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层.

Android是以Linux为核心的手机操作平台[5],作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统.

在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:

python、lua、tcl、php等等),还有其他诸如:

QT(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序.另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,该语言类似Basic语言.而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发.

2.1.1应用程序

早期的Android应用程序开发,通常通过AndroidSDK(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同.

例如开发者可以通过AndroidNDK(AndroidNative开发包)使用C语言或者C++语言来作为编程语言开发应用程序.同时谷歌还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的VisualBasic语言.此外,谷歌公司还推出了GoogleAppInventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者.

2.1.2Java开发方面

Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化.考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同.

2.1.3C/C++开发方面

早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步.2010年4月,谷歌正式对开发者发布了AndroidNDK,NDK允许开发者使用C/C++作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C++在Android开发中的希望.

但是,当前版本的NDK在功能上还有很多局限性:

NDK并没有提供对应用程序生命周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UIAPI,当前版本的NDK中也没有提供.但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进.

由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好.

2.2Android工作原理

2.2.1硬件抽像层

Android的HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块.HAL的目的是为了把Androidframework与Linuxkernel隔开,让Android不至过度依赖Linuxkernel,以达成kernelindependent的概念,也让Androidframework的开发能在不考量驱动程序实现的前提下进行发展.HALstub是一种代理人(proxy)的概念,stub是以*.so档的形式存在.Stub向HAL“提供”操作函数(operations),并由Androidruntime向HAL取得stub的operations,再callback这些操作函数.HAL里包含了许多的stub(代理人).Runtime只要说明“类型”,即moduleID,就可以取得操作函数.

2.2.2系统内核

Android是运行于Linuxkernel之上,但并不是GNU/Linux.因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了.Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等.Android为了达到商业应用,必须移除被GNUGPL授权证所约束的部份,例如Android将驱动程序移到userspace,使得Linuxdriver与Linuxkernel彻底分开.bionic/libc/kernel/并非标准的kernelheaderfiles.Android的kernelheader是利用工具由Linuxkernelheader所产生的,这样做是为了保留常数、数据结构与宏.

2.2.3安全权限机制

Android本身是一个权限分立的操作系统.在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID).系统的各部分也分别使用各自独立的识别方式.Linux就是这样将应用与应用,应用与系统隔离开.系统更多的安全功能通过权限机制提供.权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问.Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作.

一款应用应该根据自身提供的功能,要求合理的权限.用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全.如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑.编辑本段系统组件Android开发四大组件分别是:

活动(Activity):

用于表现功能.服务(Service):

后台运行服务,不提供界面呈现.广播接收器(BroadcastReceiver):

用于接收广播.内容提供商(ContentProvider):

支持在多个应用中存储和读取数据,相当于数据库.

2.3系统开发环境说明

2.3.1Android的开发环境说明

为了学习Android的UI和功能,我们可以通过AndroidVirtualDevice(AVD)来实现.AVD是Google提供给开发人员来调试他们开发的应用程序的,它可以运行在我们的PC机上,提供与真实手机形同的UI和操作方式,只是底层的硬件驱动不同.我们可以用鼠标代替手机在AVD上实现点、划、按等触摸操作.实现这一切的前提是我们需要搭建一个Android的开发环境.

2.3.2开发环境

开发所用操作系统:

Windows764位

IDE:

Eclipse

开发语言:

安卓

开发所用插件:

ADT12.0.0

SDK:

AndroidSDK2.2,JDK1.6及以上

办公软件:

Office2007OfficeVisio2003

 

3.系统分析

3.1系统设计目标

基于安卓版推箱子游戏的具体开发目标为:

(1)完成游戏菜单的设计,实现菜单上按钮功能.

(2)设计游戏地图,并将建筑物、箱子、人物在地图中设置好

(3)主角不能穿过箱子;

(4)箱子数量和目标位置数量相等(但每个箱子并不和唯一的目标位置一一对应);

(5)主角可以移动和推动木箱(响应键盘方向键);

(6)主角只能往前推动箱子,不能向后或者向侧面拉箱子;

(7)主角不能同时推动两个箱子;

(8)箱子移动方向正前方紧挨墙壁,不可推动;

(9)将所有箱子推到设定位置则通过本关,自动进入下一关卡.

3.2系统可行性分析

3.2.1技术可行性分析

在策划推箱子游戏时,首要考虑到要设计一个优美的游戏界面,操作起来更加人性化,即玩家可以用键盘的上、下、左、右键控制人物的移动位置,在画面方面也要更加清新,该游戏是一个轻量级的益智游戏,不存在复杂的情节,做的主要工作为设计游戏各关仓库的形状、大小、可通过区域、各关中箱子的初始位置与目的地.上述种种都可以用Android原因来实现.在编写程序是需要上网搜集了游戏中要用到的图片、声音等,收集一些有用的素材.

3.2.2操作可行性分析

本游戏只需要玩家操作四个键位即上下左右四个键位来控制游戏中人物的动作,操作简单易懂,对玩家来说不需要高深的计算机专业知识,只要认识汉字,懂得开关游戏,就可以对系统进行使用.

3.3.3经济可行性分析

由于游戏属于安卓版本小游戏,语言平台是开放的,编译器也是学生学习版本不需要交钱,整个游戏并不算太大,因此开发成本不算太高.整个开发过程由一个人参与,只需要一台PC机,就可以实现全部的开发任务.由于PC机是我自己所有的,而且无需专门升级硬件;而各种软件,又是能够在网上免费下载的,因此,整个开发成本可以说是非常的低廉,这也为以后进一步完善游戏提供了非常大的方便.在使用成本上,用户只需要拥有一部手机,安装本游戏APK就可以使用本游戏,无需付出任何代价,而且对手机的硬件的需求也不是很高,软件方面也没有特殊的需求,易于推广和使用.因此,从经济可行性分析来看,这个游戏完全是可行的.

3.3系统功能需求概述

基于安卓的推箱子小游戏运用于手机端,手机端实现了打开游戏、进入游戏列表,开始游戏、开关声音、游戏帮助、退出游戏四项功能.进入游戏以后利用上下左右四个键控制游戏,进入游戏以后按下左下角有退出按钮,游戏会退回到菜单页面.

3.4系统设计规则

无论哪个游戏都要有它自己的设计规则.该游戏也一样,它的主要设计规则有:

简单性:

在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的.

针对性:

该系统设计是基于安卓版推箱子小游戏的设计与实现,所以具有专业突出和很强的针对性.

实用性:

该游戏操作简单,打开即玩,具有良好的实用性.

3.5业务流程设计

业务流程分析阶段要调查系统所涉及每个环节的管理业务活动,掌握所有管理业务的内容、作用和信息的输入、输出、数据存储以及信息处理方法和过程,并根据业务的实际处理步骤和过程,绘制出业务流程图.

业务流程图(TransactionFlowDiagram,TFD),它是用一些规定的符号及连线来表示某个具体业务处理过程的图表,即描述系统内各单位、人员之间的业务关系、作业顺序和管理信息流向的图.

业务流程图如图3-1所示:

图3-1业务流程图

4.游戏的设计与实现

4.1主菜单界面模块设计

游戏的界面只有一个主菜单界面和一个游戏界面组成,菜单界面包含了四项功能按钮,在游戏界面中只有一个退回到主菜单界面的按钮.如下图4-1所示.

图4-1界面模块图

4.2游戏界面设计

启动游戏后便可直接进入游戏主界面,主界面上玩家可以自由选择对游戏的操作.该游戏的运行步骤与界面设计如下:

启动游戏后游戏主界面,效果如图4-2所示.

图4-2游戏主界面图

点击“开始游戏”,即可进入系统设置的关卡中,默认从第一关开始,在游戏地图下方只有一个退出按钮,玩家可以通过退出按键返回游戏主界面.

玩家现在就可以开始游戏旅途,充分开动脑筋,挑战每一关卡,关卡难度设计由易到难.效果如图4-3所示.

图4-3游戏第一关图

当玩家将所有箱子推向目的地,这时候游戏会提示恭喜过关,点击游戏屏幕继续.如图4-4所示.

图4-4游戏胜利提示图

当游戏通过第一关时游戏进入第二关,第二关游戏如图4-5所示.

图4-5第二关图

点击“退出”,则会退回游戏主菜单.

4.3设计方案

游戏主体设计主要分为以下几个模块[6-7]:

控制调度模块、图形界面模块、逻辑运算模块、动画效果模块

本游戏分五个模块

(1)初始化模块,对游戏界面进行初始化操作,包括界面切换、和控制声音播放.

(2)功能实现模块,主要是对游戏中各个环节进行绘制,设计出系统地图,对玩家手机键位的设定,音乐功能调用,游戏中所有文字的提示信息以及游戏中背景和文字颜色大小等设置的实现.

(3)游戏设计模块,实现玩家控制人物的操作,使之能够操作箱子到各个位置,以完成游戏设定的任务.

(4)游戏数据模块,游戏数据合理性的判断.

(5)功能控制模块,控制游戏功能的实现,包括创建菜单、调用系统音乐、获取当前系统状态、获取游戏界面图标等参数、保存游戏.

系统功能结构图如图4-6所示

图4-6系统功能模块图

 

5.游戏功能设计说明及代码

5.1对键盘的抬起按下接听的实现

在对键盘的抬起按下进行接听是用到了两个类PushBoxActivity、KeyThread.

PushBoxActivity主要是游戏的控制器,其主要功能是各个view之间的切换.

在这个程序中,定义了一些变量,例如是否播放声音的变量booleanisSound=true,胜利时的声音MediaPlayerwinSound,储存游戏地图的变量intmap[][];intmap2[][],和选中地图的变量intselectMap,键盘的状态变量intaction以及最重要的HandlermyHandler=newHandler变量,该变量用于接收各个view的控制消息,然后根据消息的类型进行不同的处理.在定义好好一些变量之后,初始化游戏中的声音,设置为循环播放.改程序最后的部分编写的是键盘抬起的处理和键盘按下的处理方法.键盘的抬起和键盘的按下代码如下:

publicbooleanonKeyUp(intkeyCode,KeyEventevent){//键盘抬起

if(keyCode==19){//上

action=action&0x37;

}

if(keyCode==20){//下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1