基于ANDROID平台的2048游戏设计与开发.pdf

上传人:b****3 文档编号:3213441 上传时间:2022-11-20 格式:PDF 页数:15 大小:470.16KB
下载 相关 举报
基于ANDROID平台的2048游戏设计与开发.pdf_第1页
第1页 / 共15页
基于ANDROID平台的2048游戏设计与开发.pdf_第2页
第2页 / 共15页
基于ANDROID平台的2048游戏设计与开发.pdf_第3页
第3页 / 共15页
基于ANDROID平台的2048游戏设计与开发.pdf_第4页
第4页 / 共15页
基于ANDROID平台的2048游戏设计与开发.pdf_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于ANDROID平台的2048游戏设计与开发.pdf

《基于ANDROID平台的2048游戏设计与开发.pdf》由会员分享,可在线阅读,更多相关《基于ANDROID平台的2048游戏设计与开发.pdf(15页珍藏版)》请在冰豆网上搜索。

基于ANDROID平台的2048游戏设计与开发.pdf

高级操作系统论文高级操作系统论文(设计设计)题题目目基于基于Android个人个人2048小游戏的设计与开发小游戏的设计与开发姓姓名名学学号号院、院、系系信息学院信息学院专专业业指导教师指导教师职称(学历)职称(学历)目目录录摘要摘要11前言11.1游戏背景11.2游戏玩法介绍12游戏设计分析12.1游戏框架的分析12.2流程分析22.3开始游戏分析22.4计分分析22.5游戏结束分析23游戏的具体实现23.1创建游戏项目23.2设计游戏布局33.3主界面的实现33.4触控交互设计53.5游戏卡片类的实现73.6添加游戏卡片83.7在游戏中添加随机数83.8游戏计分的实现93.9游戏结束设置94心得体会12参考文献12AbstractAbstract131基于基于Android个人个人2048小游戏的设计与开发小游戏的设计与开发摘要摘要:

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

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

2048是当时基于1024和小三传奇这两款的玩法而开发的新型数字游戏,现在开发出来的版本有普通版、六边形版、朝代版、3D版、后宫版等等。

关键词:

关键词:

游戏;数字;版本11前言前言1.11.1游戏背景游戏背景生活在21世纪的我们已经进入电子时代,像如今,液晶电视,平板电脑,Ipad,手机等等,已经进入大众家庭,随着中国的经济发展,人均收入大幅度提升,很多家庭都用上了电子产品,像我们小时候用的好记星、小霸王学习机等等都已经慢慢被淘汰,淡出大众的视野,取而代之的是现在快速发展的移动设备,尤其是手机,更是大众化,价格也越来越低廉,平均每个家庭都会有几部,甚至十几部,尤其是现在的年轻人,不论是吃饭、走路、等车、睡觉之前都会热衷于玩于手机,当你感到无聊的时候,可以上上网,看看新闻,累了之后可以玩玩小游戏缓解一下疲劳,所以我就设计了这款2048的小游戏,既开发智力,又缓解疲劳,适时玩一下小游戏还是有好处的。

本游戏是基于安卓平台开发的,Android是一种以Linux为底层,用Java语言编写代码的操作系统,主要使用于Android系统的手机。

1.21.2游戏玩法介绍游戏玩法介绍游戏的规则其实很简单,就是每次可以选择上下左右其中一个方向滑动,每滑动一次,所有的数字都会往滑动的方向靠拢外全部靠拢在滑动方向的一边为基准线进行叠排,每滑动一次,系统就会在空白的方块随机出现一个数字方块,一般只出现2和4,出现2的概率会远远大于出现4的概率,相同数字的方块在靠拢、相撞时会相加。

玩家要想办法在这小小的16个方格中拼凑出“2048”这个数字方块,就表示游戏过关。

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

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

22.22.2流程分析流程分析要想把一个游戏做好,首先要把流程分析好,画出流程图,如图2-1所示图2-1流程分析2.32.3开始游戏分析开始游戏分析用户需点击开始游戏按钮,进入游戏主界面,然后用手指在屏幕上上下左右四个方向滑动即可。

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

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

3游戏的具体实现游戏的具体实现3.13.1创建游戏项目创建游戏项目创建该游戏的名称为Game_2048,所在的包目录为com.sc.game_2048,为了便于中文的显示,我们选择编码方式为UTF-8。

开始游戏初始化游戏界面,在新游戏界面的4*4的框中随机产生两个数字2或者4有相邻数字相同?

两个数字相加,并且添加一个新的随机数本次移动获得相应的分数记录相应的分数是是否有空框?

是游戏结束对框进行上下左右方向移动,以使相同的数字进行叠加否添加一个随机数否33.23.2设计游戏布局设计游戏布局本游戏的设计用到了线性布局、相对布局、表格布局等等。

(1)线性布局是最简单的,也是开发者用的最多的布局文件,是初学者最容易上手的布局之一。

若规定线性布局的方向为处置方向时,此时整个线性布局中的所有控件都会位于同一列中;若规定线性布局的方向为水平方向,则所有的控件都会为同一行中,线性布局既可以在XML中定义,也可以直接在java文件中定义,当然这需你非常熟悉之后。

(2)相对布局另外一种空间摆放的方式,相对布局通过指定当前空间与兄弟空间或者父控件之间的相对位置关系,从而达到控制控件位置的目的。

在安卓版本4.2以后,相对布局增加了新的特性,比如:

layout_alignStart,layout_aliagnEnd,layout_alignParentStart,layout_alignParentEnd。

3.33.3主界面的实现主界面的实现3.3.13.3.1开始界面开始界面

(1)本界面主要通过一个ImageView实现,通过使用Handler事件处理的postDelayed方法,实现从本界面经过5秒钟的时间自动跳转到MangeActivity界面。

(2)在本界面中,通过以下两条语句获取当前窗口的宽度和高度,并且设置窗口的高度和宽度充满整个屏幕不显示标题,使得进入游戏时,可以充满整个屏幕。

在后面的其他界面中均采用这种方式,是的所有界面充满整个屏幕。

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);requestWindowFeature(Window.FEATURE_NO_TITLE);实现界面如图3-1所示图3-1开始界面43.3.23.3.2控制界面控制界面控制界面主要包括开始游戏按钮和退出游戏按钮,本界面主要采用了相对布局的方式,两个按钮均采用了ImageButton的控件,使得用户通过点击开始游戏时,通过两个Avtivity的跳转,从本界面跳转到游戏界面,点击退出游戏按钮,结束当前游戏并退出游戏界面,释放相应的资源。

实现界面如图3-2所示图3-2控制界面3.3.33.3.3游戏界面游戏界面本界面主要采用了线性布局、表格布局以及FrameLayout,通过这三种布局的有效结合,使得游戏分为计界面以及游戏界面两部分,上边部分记录游戏所得分数,下面部分用于显示游戏的16个操作框,实现游戏的运行。

具体实现界面如图3-3所图3-3游戏界面53.43.4触控交互设计触控交互设计本模块主要实现用户通过手指滑动屏幕,起始位置,获得水平或垂直方向的偏移离量,以此来判断用户的意图,主要是通过调用OnTouchListener监听器来实现的,具体代码实现如下:

setOnTouchListener(newOnTouchListener()privatefloatstartHorizontal,startVertical;privatefloatshiftHorizontal,shiftVertical;publicbooleanonTouch(Viewv,MotionEventevent)/TODOAuto-generatedmethodstubswitch(event.getAction()caseMotionEvent.ACTION_DOWN:

startHorizontal=event.getX();startVertical=event.getY();break;caseMotionEvent.ACTION_UP:

shiftHorizontal=event.getX()-startHorizontal;shiftVertical=event.getY()-startVertical;if(Math.abs(shiftHorizontal)Math.abs(shiftVertical)if(shiftHorizontal4)slipRight();elseif(shiftVertical4)slipDown();break;6returntrue;);这里列举向左滑动时的代码,其他三个方向的代码跟此方向的代码相似privatevoidslipLeft()booleanflag=false;for(inti=0;i4;i+)for(intj=0;j4;j+)for(intk=j+1;k=0)if(cardArrayji.getNumber()=0)cardArrayji.setNumber(cardArrayki.getNumber();cardArrayki.setNumber(0);flag=true;elseif(cardArrayji.equals(cardArrayki)&(k=j+1)cardArrayji.setNumber(cardArrayji.getNumber()*2);cardArrayki.setNumber(0);GameMainActivity.getMainActivity().addScore(cardArrayji.getNumber();flag=true;if(flag=true)addRadomNumber();winGame();endGame();7特殊情况:

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

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

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

3.53.5游戏卡片类的实现游戏卡片类的实现主要采用了FrameLayout布局的方式,实现每个文本框中的数字的大小,位置,背景颜色等等。

(1)重写了equals方法,来判断当前textView中的数字与其比较的textView的数字的大小。

具体实现代码如下:

publicbooleanequals(CardActivityo)/TODOAuto-generatedmethodstubReturngetNumber()=o.getNumber();

(2)通过判断不同文本框中的数字大小,来实现不同数字的使用不同的颜色北京来显示。

具体实现代码如下:

if(number=0)textView.setText();textView.setBackgroundColor(0xffB2C0CC);elsetextView.setText(number+);if(number=2)textView.setBackgroundColor(0xffDAE4EE);if(number=4)textView.setBackgroundColor(0xffC8E0EC);.83.63.6添加游戏卡片添加游戏卡片由于目前用户使用的手机的屏幕分辨率不同,所以需要动态计算游戏文本框的宽度和高度,以此来填充满整个手机屏幕。

当手机由原来的垂直方向转换到水

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

当前位置:首页 > 经管营销 > 财务管理

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

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