贪吃蛇游戏报告书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
青岛大学软件技术学院交互式游戏设计实践实训题目名称贪吃蛇
姓名
专业数字媒体艺术
班级 10级3班
指导教师解新峰
2014 年 1 月 14 日
1
目录
第一章引言 (3)
1.1选题背景 (3)
1.2项目意义 (3)
1.3开发技术 (3)
1.3.1 Java语言简介 (3)
1.3.3 Eclipse开发环境 (3)
第二章贪吃蛇游戏概述 (5)
2.1游戏分析 (5)
2.1.1 游戏规则 (5)
2.1.2 游戏玩法 (5)
2.2算法分析 (5)
2.3架构分析 (5)
第三章贪吃蛇游戏的详细设计 (7)
3.1游戏总体结构设计 (7)
3.2 游戏运行图 (10)
小结 (13)
参考文献 (13)
第一章引言
1.1选题背景
贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。
1.2项目意义
游戏在设计方面应该本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,应始终坚持清晰明了,在性能方面应能够实现效率高,不易出错等优点。游戏主界面应该力求美观,赏心悦目。游戏控制模块应做到易懂、易操作,而且准确率高,不易出错。
1.3开发技术
1.3.1 Java语言简介
Java是一种简单易用的编程语言,它采用了一种虚拟机作为中间层来屏蔽平台差异,能够实现跨平台运行。Java支持面向对象编程,有封装、继承、多态的特性,它还支持多线程,实现多个程序流程同时执行,完成不同任务。
1.3.2 Java语言的开发工具包JDK
JDK(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:
表2.3
第三章贪吃蛇游戏的详细设计
3.1游戏总体结构设计
1.主类SnakeGame
(1)主类为此程序的入口,定义了SnakeFrame的对象frame,开始运行此程序。
2.类SnakeFrame
(1)成员变量见表2
(2)方法见表3
3.类Snake
(1)成员变量见表4
(2)方法见表5
4. 类Node
(1)成员变量见表6
5.类SnakePanel
此类为画蛇的面板类,是实现红蓝间隔画蛇身算法的类。
6.类StatusRunnable
此类为线程的子类,实现记录状态的功能。
7.类SnakeRunnable
此类为线程的子类,实现蛇运动以及记录分数的功能。