基于Android的2048游戏开发-毕业设计(论文).doc

上传人:wj 文档编号:4886724 上传时间:2023-05-07 格式:DOC 页数:38 大小:2.40MB
下载 相关 举报
基于Android的2048游戏开发-毕业设计(论文).doc_第1页
第1页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第2页
第2页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第3页
第3页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第4页
第4页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第5页
第5页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第6页
第6页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第7页
第7页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第8页
第8页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第9页
第9页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第10页
第10页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第11页
第11页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第12页
第12页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第13页
第13页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第14页
第14页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第15页
第15页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第16页
第16页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第17页
第17页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第18页
第18页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第19页
第19页 / 共38页
基于Android的2048游戏开发-毕业设计(论文).doc_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android的2048游戏开发-毕业设计(论文).doc

《基于Android的2048游戏开发-毕业设计(论文).doc》由会员分享,可在线阅读,更多相关《基于Android的2048游戏开发-毕业设计(论文).doc(38页珍藏版)》请在冰点文库上搜索。

基于Android的2048游戏开发-毕业设计(论文).doc

毕业设计(论文)

基于Android平台2048游戏开发

教学单位:

计算机学院

专业名称:

软件工程(游戏与数字媒体)

学号:

2012031201011

学生姓名:

高振东

指导教师:

宋喜佳(讲师)

指导单位:

计算机学院

完成时间:

2016年4月30日

电子科技大学中山学院教务处制发

2

电子科技大学中山学院毕业设计(论文) 摘要

基于Android平台2048游戏开发

【摘要】在生活节奏不断加快的现代社会,轻松的益智游戏对缓解生活压力调节情绪具有重要的意义。

《2048》这款小游戏是一款流行的数字游戏。

第一款《2048》小游戏是由GabrieleCirulli首度发布在GitHub上。

《2048》是当时基于《1024》和《小三传奇》这两款的玩法而开发的新型数字游戏,而游戏设计初衷是一款益智类的游戏,其特点在于轻松,简单,因此,开发要求做到各项功能要完备、操作要简便、易学易用。

现在开发出来的版本有普通版、六边形版、朝代版、3D版、后宫版等等。

本文采用JAVA语言开发了2048小游戏,通过Android平台实现了2048的基本运行,本着简单,易于操作的原则和缓解生活压力、降低生活节奏的初衷,游戏中没有繁多的按钮,也不用特别复杂的操作,只需动动手指,即可操纵自如。

游戏经过图形界面的处理,以不同的颜色显示不同的数字,并拥有了最高成绩记录,撤销上一步,重置游戏的各项功能。

对于游戏的逻辑实现部分进行测试,测试结果正常,目前没有发现异常。

但是游戏界面可能有些简单,日后可以通过美化界面来获得更好的游戏体验。

【关键词】游戏;益智;数字

33

电子科技大学中山学院毕业设计(论文) Abstract

BasedontheAndroidplatform2048game

【Abstract】Intheacceleratedpaceoflifeinthemodernsociety,easypuzzlegametoeasethepressureoflife.Force,adjustthemoodhasimportantmeaning"2048"thissmallgameisapopulardigitalgame.Thefirst"2048"smallgamewasreleasedbyCirulliGitHubonGabrieleforthefirsttime."2048"wasbasedon"1024"and"smallthree"Legendofthetwogameplayandthedevelopmentofanewtypeofdigitalgamesandgamedesignoriginalintentionisapuzzlegame,itscharacteristicsiseasyandsimple,therefore,development.Seekingtoachievethefunctiontocomplete,easytooperate,YiXueyiuse.Nowdevelopedaversionoftheordinaryversion,hexagonalversion,Dynastyversion,3Dversion,thepalaceversion,etc.

TheJavalanguagetodevelopthe2048smallgame,2048,thebasicoperationisrealizedthroughtheAndroidplatform,thepurposeofsimpleandeasyoperationprincipleandalleviatethepressureoflife,reducetheoriginalintentionoftherhythmoflife,thegamewithoutdifferentbutton,alsoneednotparticularlycomplexoperations,onlyneedtomoveafinger,youcanmaneuverability.

Gamethroughtheprocessingofthegraphicalinterfacetodisplaydifferentcolorswithdifferentnumbers,andhavethehighestscorerecords,undothelaststep,resetthefunctionofthegame.Thelogicofthegametoachievepartofthetest,thetestresultsarenormal,thereisnoabnormal.Butthegameinterfacemaybealittlesimple,inthefuturecanbeusedtobeautifytheinterfacetogetabettergamingexperience.

【KeyWords】game;puzzle;numbel

电子科技大学中山学院毕业设计(论文) 目录

目录

第1章绪论 1

1.1游戏开发背景 1

1.2国内外研究现状 1

1.3游戏开发意义 2

1.4论文结构 2

第2章相关技术和理论基础 3

2.1Java语言 3

2.2Android操作系统 4

2.2.1简介 4

2.2.2系统架构 5

2.2.3Android版本 6

2.3开发平台介绍 6

2.3.1Eclipse 6

2.3.2ADT 7

2.3.2JDK 7

第3章可行性分析 8

3.1可行性研究目的 8

3.1.1技术可行性 8

3.1.2经济可行性 8

3.1.3操作可行性 8

第4章游戏设计 9

4.1游戏规则 9

4.2总体设计 9

4.3详细设计 11

第5章游戏测试 17

5.1测试过程 17

5.2测试内容 17

5.3测试结果 21

第6章心得体会 22

参考文献 23

附录游戏实现代码 24

致谢 32

电子科技大学中山学院毕业设计(论文) 图目录

图目录

图2.1JavaLogo 3

图2.2AndroidLogo 4

图2.3Android系统架构 5

图4.2.1系统功能 9

图4.2.2计分显示 10

图4.2.3游戏内容 10

图4.2.4游戏菜单 10

图4.2.5游戏流程 11

图4.3.1游戏主界面 12

图4.3.2数字合并前 13

图4.3.3数字合并后 14

图4.3.4游戏计分 15

图4.3.5游戏计分 15

图4.3.6游戏结束 16

图5.2.1游戏开始 18

图5.2.2向上滑动 18

图5.2.3向左滑动 19

图5.2.4向下滑动 19

图5.2.5向右滑动 20

图5.2.6撤销功能 20

图5.2.7重置功能 21

电子科技大学中山学院毕业设计(论文) 第1章绪论

第1章绪论

1.1游戏开发背景

Android智能手机功能非常强大,具有很高的性价比,非常深受人们的喜爱,可能正式因为如此,在2014年中,Android智能手机在全世界占据着81.5%很夸张的市场份额,一举成为使用的人数最多,市场份额占据最大的Android智能手机系统。

而Android智能手机游戏的出现正是为了娱乐心神,并且随着智能移动终端和全球移动通信网络的不断进步,Android智能手机游戏也正在经历从简单到复杂的进化过程。

从全球来看,智能移动终端的娱乐服务一直被认为是带动移动数据业务加速并快速发展的重要力量。

也是作为手机娱乐服务的重要内容之一。

近年来,一直伴随着全球移动网络和移动终端性能不断的提高和完善。

由于近几年来,Android智能手机游戏的快速发展,游戏的分类也变得越来越丰富,目前手机游戏按内容可分为:

角色扮演类(RPG)、冒险类(AVG)、格斗类(FTG)、棋牌类、电影改版类、益智类、体育竞技类、模拟类。

手机游戏种类目前已成为人类线上娱乐生活的不可或缺的最主流的载体而存在,现代人对于移动终端的休闲娱乐功能所需求越来越强大,移动终端上的游戏或已以成为了现代人们娱乐生活中不可或缺的一部分了。

1.2国内外研究现状

基于Android的游戏开发,国内国外的水平差距很大。

在市场上成名的手机游戏基本上都是国外游戏公司开发的,而且很容易辨认。

因为学习的关系,本人接触了很多Android开发者的游戏,发现国内开发者开发的Android手机游戏,不仅界面粗糙,而且设计简单,同质化严重,相同的创意往往被反复抄袭很多次。

而国外开发者开发的游戏不同,大型游戏内容丰富,情节完整;小型游戏而从用户体验和创意上远胜国内的开发者。

1.3游戏开发意义

此次毕业设计的初衷就是想设计出一个能够在任何环境任何时间都能够放松心情和娱乐心身的单机游戏,只要通过简单和易操作的Android游戏帮助手机用户来打发他们闲暇的时间,并娱乐心身和放松心情。

如果你也是一个数字叠加的爱好者,或者是比较有天赋的数学天才,不过就算不是数学的天才,一般的玩家也能够玩转这款游戏,都会有很大的成功机会。

当你体会过这款游戏,你就会被这游戏深深的吸引,根本停不下来。

1.4论文结构

本论文主要从下面几章阐述对于Android2048游戏的研究与应用:

第1章:

绪论,介绍了课题的研究背景、国内外研究现状,课题研究目的和意义、以及本文的结构。

第2章:

相关开发技术与理论基础,介绍了课题采用的Android操作系统等相关技术。

第3章:

可行性分析,对Android2048游戏进行可行性分析。

总体介绍了程序的设计架构及所要实现的功能分析,并阐述了开发平台和环境的选择。

第4章:

系统详细设计与实现,介绍了程序各个模块的功能分析以及设计思路并其相关实现代码。

第5章:

系统应用实例和结果分析,介绍了应用平台,测试用例以及结果分析。

第6章:

心得体会,总结本文工作成果,并对研究工作做反思和总结

电子科技大学中山学院毕业设计(论文) 第2章相关技术和理论基础

第2章相关技术和理论基础

2.1Java语言

Java语言的前身是SunMicrosystems公司开发的一种用于智能化家电的名为Oak(橡树)的语言,它的基础是当时最流行的C和C++语言(Sun公司于2009年4月被Oracle公司收购)。

但是,由于一些非技术上的原因,Oak语言并没有得到迅速的推广。

知道1993年,WWW(万维网)迅速发展,Sun公司发现可以利用Oak语言的技术来创造含有动态内容的WWW网页,于是已受人冷落了的Oak语言又被重新的开发和改造。

于是便将改造后的Oak语言改名为Java语言,Java是太平洋上的一个盛产咖啡的岛屿的名字。

终于,在1995年,Java这个被定位于网络应用的程序设计语言被正式推出。

图2.1JavaLogo

Java编程语言的风格十分接近C++语言。

集成了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针,改以引用取代,同时移除原C++与原来运算符重载,也移除了多重继承特性,改用接口取代,增加垃圾回收器功能。

在JavaSE1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。

Sun公司对Java语言的解释是:

“Java编程语言是个简单、面向对象、分布、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

Java语言问世的时间虽然不长,但却已被业界所接受,IBM、Apple、DEC、Adobe、HP等大公司都已经购买了Java语言的许可证。

2001年,当时的移动电话吧主NOKIA宣布,到2003年将出售1亿部支持Java的手机。

2.2Android操作系统

2.2.1简介

Android,中文俗称安卓,是一个以Linux为基础的开放源代码移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的OpenHandsetAlliance(OHA,开放手持设备联盟)持续领导与开发中。

Android已发布的最新版本为Android5.1(Lollipop)。

图2.2AndroidLogo

Android系统最初由安迪·鲁宾(AndyRubin)等人开发制作,最初开发这个系统的目的是创建一个数码相机的先进操作系统;但是后来发现市场需求不够大,加上智能手机市场快速成长,于是Android被改造为一款面向智能手机的操作系统。

于2005年8月被美国科技企业Google收购。

2007年11月,Google与84家硬件制造商、软件开发商及电信营运商成立开放手持设备联盟来共同研发改良Android系统,随后,Google以Apache免费开放源代码许可证的授权方式,发布了Android的源代码,让生产商推出搭载Android的智能手机,Android操作系统后来更逐渐拓展到平板电脑及其他领域上。

2010年末数据显示,仅正式推出两年的Android操作系统在市场占有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全球第一大智能手机操作系统。

在2014年GoogleI/O开发者大会上Google宣布过去30天里有10亿台Android设备被激活,相较于2013年6月则是5.38亿。

2.2.2系统架构

Android是基于Linux内核的软件平台和操作系统,采用了软件堆栈(SoftwareStack)的架构,共分为四层。

图2.3Android系统架构

(1)应用程序层

该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。

同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。

(2)应用程序框架层

该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。

应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。

在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。

并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。

基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。

(3)系统库和Android运行时

系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。

Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、、android.media等等。

后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。

(4)Linux内核

Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。

Linux内核也是作为硬件与软件栈的抽象层。

驱动:

显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。

2.2.3Android版本

Android操作系统是一个由Google和开放手持设备联盟共同开发发展的移动设备操作系统,其最早的一个版本Android1.0beta发布于2007年11月5日,至今已经发布了多个更新。

这些更新版本都在前一个版本的基础上修复了Bug并且添加了前一个版本所没有的新功能。

当前用户量最多的是代号为JellyBean果冻豆版本,占Android用户42.6%,因此,本设计采用Android4.1.2SDK版本。

2.3开发平台介绍

2048Android游戏开发平台为Eclipse4.3.2+ADT22.6.2+JDK1.7.0_51,模拟测试平台为AndroidSDK模拟器,真机测试平台为ZTEU930HD。

2.3.1Eclipse

Eclipse是不仅仅是成为专门开发JAVA程序的IDE环境,根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。

Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。

也就是说未来只要有人需要,就会有建立在Eclipse之上的C++,JAVA,Python等语言的开发插件出现。

同时可以通过开发新的插件扩展现有插件的功能。

可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse的潜力所在。

在本项目中,Eclipse正是通过第三方插件—ADT实现了开发Android应用。

2.3.2ADT

DT是英文AndroidDevelopmentTools的简称,即Android开发工具包。

ADT是Eclipse中构建Android应用程序IDE插件,ADT扩展了Eclipse的功能,让开发人员快速建立新的Android项目、创建应用程序的用户界面。

ADT可以帮助Eclipse找到Androidsdk,再加上Android框架的API组件调试使用AndroidSDK工具,以便APK分发给应用程序。

ADT大大减轻Android应用程序的开发工作量,工具集成XML编辑器,将给开发人员一个令人难以置信的开发Android应用环境。

使用ADT之前,必须确认已经安装了Eclipse以及同EclipseIDE兼容版本的AndroidSDK。

2.3.2JDK

JDK(JavaDevelopmentKit)是Java语言的软件开发工具包(SDK)。

有SE、EE、ME三个版本。

没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE。

电子科技大学中山学院毕业设计(论文) 第3章可行性分析

第3章可行性分析

3.1可行性研究目的

3.1.1技术可行性

确保现有的技术是否能解决本该开发项目:

系统采用JAVA语言开发,Eclipse作为Android开发环境。

ADT插件提供了一系列图形用户界面组件进行界面编程,所以在技术上可行。

3.1.2经济可行性

由于“2048”游戏作为毕业设计进行开发,由本人亲自开发,而且开发android程序不需要购买昂贵的设备,所以成本不会太高,综上所述经济上是可行的。

3.1.3操作可行性

确定软件产品是否能够被最终的用户所接受,用户是否能操作最终的产品:

该游戏在方便易操作的Android手机上运行,方便于玩家操作。

根据以上几个方面的研究,在技术上、经济上和操作上都是可行的,本项目可进行开发。

电子科技大学中山学院毕业设计(论文) 第4章游戏设计

第4章游戏设计

4.1游戏规则

(1)开始时棋盘内随机出现两个数字,出现的数字仅可能为2或4;

(2)玩家可以选择上下左右四个方向,若棋盘内的数字出现位移或合并,视为有效移动;

(3)玩家选择的方向上若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并;

(4)合并所得的所有新生成数字相加即为该此移动的有效得分;

(5)玩家选择的方向行或列前方有空格则向空格处位移;

(6)每次有效移动一步,棋盘上的空位(无数字处)随机出现一个数字(依然可能为2或4);

(7)棋盘被数字填满,无法进行有效移动,判负,游戏结束。

4.2总体设计

4.2.1游戏框架分析

对一个游戏而言,需要将各个部位分割成其对应部分的功能,并且逐步去实现该功能。

图4.2.1系统功能

游戏主要分三个显示模块分别是是游戏计分,游戏内容,游戏菜单。

图4.2.2计分显示

图4.2.3游戏内容

图4.2.4游戏菜单

4.2.2游戏流程分析

要想把一个游戏做好,首先要把流程分析好,画出流程图,如图4.2.1所示:

图4.2.5游戏流程

4.2.3游戏记分分析

当有数字合并时,记录此时合并的的数字,加到相应的分数中。

同时保存游戏最高分到本地,下次启动应用时显示历史最高分。

4.2.4游戏结束分析

当屏幕上数字没有得到2048这个值,没有两个相同的格子的数字相同,并且已经没有空格,那么就判定为游戏结束。

4.3详细设计

4.3.1游戏主界面

游戏开始界面为一个类似棋盘4乘4的16宫格,在宫格的左上角显示再该局游戏内的得分,而对应的右边则显示历史最高分。

如下图4.3.1所示:

图4.3.1游戏主界面

4.3.2游戏逻辑实现

1)游戏布局

本游戏的设计用到了线性布局、相对布局、表格布局等等。

首先总体布局是一个线性布局,内部包括一个子线性布局和一个表格布局,该子线性布局中包含四个textview,用来显示当前分数,scope,最高分,topscope。

表格布局用来显示4乘4的方格。

最后再用一个线性布局显示下方的两个按钮,撤销和重置。

2)数据结构

[0~15]对应游戏中4*4的16个方格。

相应的数字对四取余得到该数字的横坐标,除以四得到该数字的纵坐标。

当方格内无数字时,将其保存到空白格列表spaceList中。

当方格内有数字时时,将其保存到数字格列表numberList中。

3)触控交互

本模块主要实现用户使用手指滑动屏幕,来判断其滑动的方向。

首先定义手指接触屏幕起始位置的横坐标变量startX,纵坐标变量startY,手指离开屏幕的最后位置的横坐标offsetX,纵坐标变量offsetY。

调用OnTouchListener监听器,重写OnTouch方法。

将offsetX减去startX得到水平方向的偏移量,同理offsetY减去startY得到垂直方向的偏移量。

通过判断水平和垂直方向偏移量即可知道用户所要移动的方向。

特殊情况:

1.由于人的手指在滑动方向会有偏差,一般不会精准的向四个方向滑动,肯定会有偏差,所以要判断手指滑过方向的是水平方向还是垂直方向的意图,当水平方向的偏移量大于垂直方向的偏移量时,表明用户是水平滑动意图,当垂直方向的偏移量大于水平方向的偏移量,表明用户是垂直方向滑动的意图。

2.由于人的手指只有滑动一段距离才能表明用户的意图,不可能点一下屏幕或者稍微动一下就表示滑动意图,这显然不太符合现实情况,所以要定义偏移一定的距离才能判断用户的真正意图。

规定当水平方向的偏移距离大于或者等于水平方向的偏移距离,且当偏移小于5时,用户向上滑动,大于5使,规定向下滑动;当水平方向的偏移距离大于或者等于水平方向的偏移距离,且当偏移小于5时,规定用户向左滑动,如果大于5,用户向右滑动。

4)数字合并

滑动方向不同时,

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2