贪吃蛇游戏报告书.doc_第1页
贪吃蛇游戏报告书.doc_第2页
贪吃蛇游戏报告书.doc_第3页
贪吃蛇游戏报告书.doc_第4页
贪吃蛇游戏报告书.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青岛大学软件技术学院交互式游戏设计实践实训题目名称 贪吃蛇 姓 名 专 业 数字媒体艺术 班 级 10级3班 指导教师 解新峰 2014 年 1 月 14 日目 录第一章 引言31.1选题背景31.2项目意义31.3开发技术31.3.1 Java语言简介31.3.3 Eclipse开发环境4第二章 贪吃蛇游戏概述52.1游戏分析52.1.1 游戏规则52.1.2 游戏玩法52.2算法分析52.3架构分析5第三章 贪吃蛇游戏的详细设计73.1游戏总体结构设计73.2 游戏运行图10小结13参考文献13第一章 引言1.1选题背景贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。1.2项目意义游戏在设计方面应该本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,应始终坚持清晰明了,在性能方面应能够实现效率高,不易出错等优点。游戏主界面应该力求美观,赏心悦目。游戏控制模块应做到易懂、易操作,而且准确率高,不易出错。1.3开发技术1.3.1 Java语言简介Java是一种简单易用的编程语言,它采用了一种虚拟机作为中间层来屏蔽平台差异,能够实现跨平台运行。Java支持面向对象编程,有封装、继承、多态的特性,它还支持多线程,实现多个程序流程同时执行,完成不同任务。1.3.2 Java语言的开发工具包JDKJDK(Java Development Kit)是Java语言的开发工具包,工具包里除了包含Java语言编译器、调试器以及演示程序以外,一般还会包含Java运行环境(Java Runtime Environment,JRE)。JRE是某一平台运行Java程序的软件环境,包括虚拟机(JVM)和核心类库等。1.3.3 Eclipse开发环境Eclipse是一个开放源代码的、基于Java的可扩展开发平台,是目前非常流行的跨平台的自由集成开发环境(IDE)。最初主要用于Java语言开发,但是目前也有人通过插件使其作为其他编程语言(如C+、PHP)的开发工具。Eclipse本身也只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse本身核心非常小,其设计思想是“一切皆为插件”。其他功能都是基于插件的形式与Eclipse无缝结合,协同工作,如Eclipse的图形API、多国语言包等。在Eclipse启动后,要真正用到某个插件时,该插件才会被动态载入内存,不再被使用的插件会在适当的时候被清除内存,所以不必担心某些不常用的插件消耗内存。插件机制使得Eclipse具有了无限扩展的可能。第二章 拼图游戏概述2.1游戏分析2.1.1 游戏规则本程序是针对贪吃蛇小游戏的JAVA程序,利用方向键来改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。2.1.2 游戏玩法玩家用鼠标点击“游戏”按钮,会出现一个含有“新游戏、暂停、继续”的下拉框,点击“新游戏并且继续”按钮即可开始进行游戏,利用方向键来改变蛇的运行方向,在菜单栏有“速度”的按钮,可以来选择蛇的运行速度。2.2算法分析a.利用数组列表来存放蛇身的每一个节点。b.蛇的方向分别用四个整型常量表示:1上,2下,3左,4右。 可利用derection % c.是否等于newDer % 2 来判断改变的方向是否一原来方向相反。d.蛇吃食物算法:根据蛇头的方向,判断蛇头坐标与食物坐标关系,例如:蛇头向上,则蛇头与食物的x坐标相同,蛇头y坐标比食物y坐标少10(一个食物或一节蛇身的长度)。e.蛇移动时,根据当前蛇头坐标向蛇头方向前画一个节点作为新的蛇头,并去掉蛇尾。2.3架构分析该游戏包括七个大类分别是主类SnakeGame、类SnakeFrame、类Snake、类Node、类SnakePanel、类StatusRunnable、类SnakeRunnable。系统流程图如表2.3:开始New Game蛇身+1是否吃到食物物Move判断蛇头方向 启动游戏状态检测线程启动游戏线程记录游戏状态Repaint游戏是否结束 否 是结束游戏状态线程Repaint() 是否发生碰撞 否游戏结束 是 表2.3第三章 贪吃蛇游戏的详细设计3.1游戏总体结构设计1.主类SnakeGame (1)主类为此程序的入口,定义了SnakeFrame的对象frame,开始运行此程序。 2.类SnakeFrame(1)成员变量见表2表2 主要成员变量成员变量描述变量类型名称状态标签Private JLabelstatusLabel分数标签Private JLabelscoreLabel蛇面板private JPanelsnakePanel速度标签private JLabelspeedLabel蛇类对象private Snakesnake菜单条private JMenuBarbar游戏菜单JMenugameMenu帮助菜单JMenuhelpMenu速度菜单JMenuspeedMenu新菜单项JMenuItemnewItem暂停菜单项JMenuItempauseItem关于菜单项JMenuItemaboutItem慢菜单项JMenuItemslowItem中间菜单项JMenuItemmidItem快菜单项JMenuItemfastItem开始菜单项JMenuItemstartItem帮助菜单项JMenuItemhelpItem (2)方法见表3表3 主要方法方法名功能SnakePanel()创建蛇的面板addKeyListener监视器setBounds()设置尺寸JLabel()设置标签JMenu()创建菜单JMenuItem构造菜单项3类Snake (1)成员变量见表4表4 主要成员变量成员变量描述变量类型名称是否运动booleanisRun蛇体ArrayListBody食物NodeFood方向intDerection分数intScore状态intStatus速度intSpeed慢public static final intSLOW中public static final intMID快public static final intFAST运动中public static final intRUNNING已暂停public static final intPAUSED游戏结束public static final intGAMEOVER左public static final intLEFT上public static final intUP右public static final intRIGHT下public static final intDOWN (2)方法见表5表5 主要方法方法名功能isEaten()判断食物是否被蛇吃掉,如果食物在蛇运行方向的正前方,并且与蛇头接触,则被吃掉isCollsion()判断是否碰撞makeFood()在随机的地方产生食物changeDerection(int newDer)改变运行方向move()蛇在运行中所采取的措施4. 类Node (1)成员变量见表6表6 主要成员变量成员变量描述变量类型名称食物块宽public static final intW食物块高public static final intH横坐标intx纵坐标inty5.类SnakePanel 此类为画蛇的面板类,是实现红蓝间隔画蛇身算法的类。6.类StatusRunnable 此类为线程的子类,实现记录状态的功能。7.类SnakeRunnable 此类为线程的子类,实现蛇运动以及记录分数的功能。3.2游戏运行图1.游戏初始状,如图3.2所示。图3.2 游戏初始状2.按“游戏”按钮准备开始游戏,如图3.3所示。 图3.3 3.开始游戏和进行游戏状态,如图3.4和3.5所示。 图3.4 图3.5 4.点击速度按钮,可以改变蛇的运行速度,如图3.6所示。图3.6 4.游戏结束,如图3.7所示。图3.7 小结整个项目制作过程特别有趣,自己用Flash软件切分图片,自己调试代码,把每一句注释完整,加深对程序的了解。整个程序的完成是一步步来的,首先给界面添加方格按钮,控制按钮,再实现事件监听,然后想办法做到更完美,比如添加背景音乐,调整背景颜色等。让我深深地体会到代码的不可思议,思维瞬间开阔很多,冒出来各种想法,我还想做出其他我知道的游戏,让自己深入了解,为日后游戏设计打基础。其实在制作过程中也遇到各种难题:1、 背景音乐添加。通过查阅相关Java书籍和上网查询,借鉴音乐设置的代码,并将音乐文件修整调试后成功添加。2、 图片的切割。其实刚开始并不知道那些图片怎么分割,怎么就在程序中调用了,经过探寻,自己摸索,用flash实现了。3、 事件监听这一块对我来说是个难点,因为在我脑海中没有一个清晰的结构,所以,请教老师多次,再自己一步一步理清思路,借鉴相关书籍,初步完成该功能。参考文献1、Java语言程序设计于静主编,陈琪、刘嘉欣副主编,朱耀庭主审;2、Java 语言程序设计M沈泽刚,秦玉平.清华大学出版社,2009; 3、Java编程思想(第4版)陈

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论