基于android的2048游戏的设计与实现(编辑修改稿)内容摘要:

5 届本科毕业论文(设计) 4 变量里点击新建在变量名中输入“ JAVA_HOME” ,在变量值中填入 JDK的安装路径;接着新建 classpath变量,变量值设为: .。 %JAVA_HOME%\lib。 %JAVA_HOME%\lib\,然后双击“系统变量”中存在的 path在弹出的对话框中添加变量值: %JAVA_HOME%\bin。 %JAVA_HOME%\jre\bin,最后运行 cmd,输入 javac,如果出现用法说明,则表示成功 [11,12]。 Android SDK 与 Eclipse 的安装与配置 在网上搜索 adtbundlewindows 并下载。 下好之后直接解压缩,此文件为已经集成了 Eclipse 和 Android SDK 的完整版, 这样就可以适合一些新手。 Android 虚拟机 AVD 的配置 在 Eclipse 菜单栏中点击 WindowAndroid Virtual Device Manager[13],在弹出的窗口中点击“ new”按钮,进入到创建的 AVD 配置窗口,可以创建自己想要的 AVD[14],如图 所示: 图 AVD 配置图 配置成功后,选中创建好的 AVD 并点击“ start”按钮弹出对话框点击 Launch安徽新华学院 15 届本科毕业论文(设计) 5 按钮,由于 AVD 第一次启动时间较长,需耐心等待 [15]。 开启成功后如图 所示: 图 AVD 界面图 本章小结 本章是对 Android应用开发所需的开发环境进行简单的介绍和对开发环境如何搭建进行介绍。 安徽新华学院 15 届本科毕业论文(设计) 6 3 系统的需求分析和概要设计 这章主要讲述了系统的需求分析,简单的描述了各个功能模块和游戏的基本规则,然后是对系统概要设计的介绍。 系统需求分析 系统功能需求分析 系统主要实现以下的几个功能:关卡选择、呈现游戏界面、重新开始游戏、当前分数和最高分数、游戏帮助等功能。 关卡选择是当玩家点击此按钮时,游戏就会从主界面跳转到关卡选择界面,当玩家选择相应的关卡时,先判断此关卡 是否开启,如果没有开启此关卡就会弹出对话框提示玩家此关卡未开启,如果此关卡已经开启就会跳转到主界面同时开始此关卡。 重新开始游戏是当玩家无法满足当前进度时点击此按钮就会重新开始游戏,如果玩家处于不同关卡时重新开始游戏还是停留在此关卡。 游戏帮助是当新手玩此游戏时无法知道游戏玩法时给予相应的提示。 呈现游戏界面是游戏开始时主界面在游戏区域会生成 4 4 的矩阵同时在矩阵里面随机生成两个 2 或 4 的卡片。 当前分数和最高分数是显示此局玩家所获得的分数和历史最高的分数,如果当前的分数超过最高分数那么最高分显示当前的分数,如图 所示。 图 安徽新华学院 15 届本科毕业论文(设计) 7 游戏基本规则 在开始游戏后玩家通过滑动屏幕来操控卡片的移动方向,当卡片滑动中如果有两张卡片相同且他们的中间也没有其他卡片时,在滑动的过程中这两张卡片会合并,显示为这两张卡片之和。 在滑动之中有三张卡片相同时只会合并向滑动方向两张卡片。 在滑动中如果有两张卡片一样同时又有一张卡片的值跟这两张卡片相加的值时,滑动只会使那两张相同的卡片合并而不会接着让合并后的卡片和另一张卡片合并。 系统概要设计 系统流程的设计 游戏开始进入开始页面,能够进入游戏的主界面并开 始普通开局,从主界面能够重新开始游戏、查看帮助和进入关卡选择界面。 当玩家点击重新开始按钮会弹出相应的对话框让玩家选择,如果玩家选择“是”时则重新开始游戏,如果选择“否”则返回游戏界面不做任何处理。 当玩家点击关卡按钮会跳转到关卡选择界面,关卡界面将显示所有的关卡,当玩家点击相应的关卡时后台会判断此关卡是否开启,如果已经开启将会跳转到主界面并运行此关卡,如果没有开启将给予玩家提示“此关卡未开启”对话框。 在开始界面按返回按钮时则会退出游戏。 游戏的流程图如图 所示: 安徽新华学院 15 届本科毕业论文(设计) 8 图 系统 模块设计 从总体出发,将该系统划分为三大模块:“菜单设计”,“界面设计”和“算法设计”。 菜单设计 菜单的实现是在游戏界面实现,可进一步划分为三个模块,分别是:“游戏帮助”,“重新开始”,“关卡选择”,如图 所示: 图 界面设计 可进一步划分为:“主界面设计”,“游戏界面设计”和“关卡界面设计”,重新开始 关卡选择 游戏帮助 安徽新华学院 15 届本科毕业论文(设计) 9 如图 所示: ( a) 开始界面 ( b)游戏界面 ( c)关卡选择界面 图 界面设计 算法设计 (1)当有两张卡片相同时,向它们可以碰撞的方向 滑 屏,卡片会移动到最底边并生成其两倍数字的卡片,并且生成一个“ 2”或“ 4”的卡片,如图 所示: 图 简单卡片合成 (2)当有两张卡片相同时,且在他相同的方向有张跟它们之和的卡片,向它们可以碰撞的方向 滑 屏,相同的卡片会移动到无法移动的位置并生成期两倍数字的卡片,但合成的卡片不会跟那张两倍数字的卡片合并,并且生成 开始游戏 分数 游戏区域 重新 关卡 帮助 关卡选择 安徽新华学院 15 届本科毕业论文(设计) 10 一个“ 2”或“ 4”的卡片,如图 所示: 图 复杂卡片合成 ( 3) 当界面上没有空位并且两两相邻的卡片不相同时游戏结束。 如图 所示: 图 本章小结 安徽新华学院 15 届本科毕业论文(设计) 11 本章主要对游戏所实现的功能进行需求分析,对图形和系统性能进行了分析,分析了图形的特点和实现的可行性。 对系统的性能进行了详细的分析同时也提出来解决性能问题的解决方案。 对系统的流程,系统所需的图形文件,系统的总体架构和系统用例进行了设计。 通过本章的分析、设计能更加具体的了解系统功能,对系统所要实现的功能和图形文件有了更深的认识。 为下一 章系统功能的具体实现提供了可靠的参考依据。 安徽新华学院 15 届本科毕业论文(设计) 12 4 系统实现 本章主要是详细介绍每个功能是怎样的实现。 开始界面的实现 游戏的主界面是按钮图片,只是实现了界面的跳转,当玩家点击此界面时就会调用 此函数让页面跳转到游戏界面开始游戏 ,如图 示 : public class ZuomianActivity extends Activity{ protected void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 setContentView()。 } 图 开始界面 游戏界面的实现 安徽新华学院 15 届本科毕业论文(设计) 13 游戏界面主要是在 中 当前分数、最高分数、游戏区域、重新开始按钮、关卡选择按钮、帮助按钮,当跳转到游戏界面时就会调用并执行 函数来展示游戏界面 ,如图 所示。 protected void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 setContentView()。 } 图 主界面 游戏 滑 屏卡片移动的实现 当玩家 滑 动屏幕时,主要是通过 initGameView 函数来监听玩家手指 滑 动的位置,先通过获取开始坐标和结束坐标,然后通过比较结束坐标跟开始坐标的差值来判断玩家是怎样 滑 动屏幕的。 判断出玩家的 滑 动轨迹后,通过调用 swipeLe安徽新华学院 15 届本科毕业论文(设计) 14 ft、 swipeRight、 swipeUp、 swipeDown 方法来实 现卡片的移动 ,如图 所示。 public void initGameView() { setColumnCount(4)。 setOnTouchListener(new OnTouchListener() { private float startX, startY, offsetX, offsetY。 public boolean onTouch(View v, MotionEvent event) { switch (()) { case : startX = ()。 startY = ()。 break。 case : offsetX = () startX。 offsetY = () startY。 if ((offsetX) (offsetY)) { if (offsetX 5) { swipeLeft()。 } else if (offsetX 5) { swipeRight()。 } } else { if (offsetY 5) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。