首页 毕业设计(论文)-基于java的贪吃蛇游戏开发

毕业设计(论文)-基于java的贪吃蛇游戏开发

举报
开通vip

毕业设计(论文)-基于java的贪吃蛇游戏开发毕业设计(论文)-基于java的贪吃蛇游戏开发 论文编号: 德州科技职业学院 毕 业 论 文 姓 名:____________________ 学 号:____________________ 所在院系:____________________ 所学专业:____________________ 指导教师:____________________ 完成时间:____________________ 贪吃蛇游戏设计 目录 JAVA贪吃蛇游戏设计 .......................................

毕业设计(论文)-基于java的贪吃蛇游戏开发
毕业设计(论文)-基于java的贪吃蛇游戏开发 论文编号: 德州科技职业学院 毕 业 论 文 姓 名:____________________ 学 号:____________________ 所在院系:____________________ 所学专业:____________________ 指导教师:____________________ 完成时间:____________________ 贪吃蛇游戏设计 目录 JAVA贪吃蛇游戏设计 ................................................................................................1 目录................................................................................................................................1 前言................................................................................................................................3 1.JAVA语言的概述及开发工具 .................................................................................5 1.1Java语言特点 ....................................................................................................................................................5 1.1.1 平台无关性................................................................................................................................................5 1.1.2安全性..........................................................................................................................................................5 1.1.3面向对象 .....................................................................................................................................................5 1.1.4分布式..........................................................................................................................................................5 1.1.5健壮性 ..........................................................................................................................................................5 1.2 J2ME介绍 .........................................................................................................................................................6 1.3 关于ECLIPSE ..................................................................................................................................................7 1.4 WTK介绍 ..........................................................................................................................................................8 2.需求分析 ....................................................................................................................8 2.1游戏的介绍.........................................................................................................................................................8 2.2游戏开发的可行性 ...........................................................................................................................................9 2.3设计目的 .............................................................................................................................................................9 2.4游戏需求 .............................................................................................................................................................9 2.4.1游戏界面需求 ............................................................................................................................................9 2.4.2游戏形状需求 ..........................................................................................................................................10 2.4.3键盘事件处理 ..........................................................................................................................................10 2.4.4显示需求 ...................................................................................................................................................10 2.4.5接口控制 ...................................................................................................................................................10 2.4.6环境介绍 ...................................................................................................................................................10 3.功能设计 ..................................................................................................................11 3.1 游戏的流程图 .................................................................................................................................................11 3.详细设计 ................................................................................................................. 12 3.1游戏主界面的开发 .........................................................................................................................................12 3.2 绘制蛇身 ..........................................................................................................................................................12 3.3创建初始“蛇”及“蛇”的移动 ..............................................................................................................13 3.4 吃掉食物,蛇身增长....................................................................................................................................13 3.4随机产生食物 ..................................................................................................................................................14 3.5键盘事件处理 ..................................................................................................................................................15 3.6 判断游戏结束 .................................................................................................................................................16 4游戏测试与发布 ..................................................................................................... 18 4.1游戏运行的效果图 .........................................................................................................................................18 4.2 测试结果 ..........................................................................................................................................................19 5.自我评价和总结 ..................................................................................................... 19 5.1遇到的问题及解决办法 ................................................................................................................................19 5.2 总结 ...................................................................................................................................................................20 6.参考资料 .............................................................................................................. 20 7.附加源代码 ............................................................................................................. 20 随着3G的到来,让人们的目光聚集到一个新兴的互联网终端 ——手机上。手机的随身性让玩家有了随时随地完游戏的可能。据我调查行业分析师也对这一行业持普遍的乐观态度。yramid Researcher 的最新报告显示,手机游戏市场正在稳步发展。用户数从2008年的1.83亿到现在将增长到3亿。据报告分析,2014年,市场 规模有望达到180亿美元。 手机游戏的发展有以下推动因素 1. 更好更快的无限网络以及易于操作的手机终端改善了用户 2. 触摸屏,3D动画处理能力以及在线互动能力让游戏开发商把游戏做的更好; 3.苹果应用商店模式刺激作用。 J2ME是一种针对移动电话和PDA这样的小型设备的Java语言。大部分的手机厂商都迫切希望Java手机推广应用。上千万的手机已经到了消费者手中。它已经极大的提高了移动电话支持游戏的能力。它有着比SMS或WAP 更好控制的界面。允许使用子图形动画。并且可以通过无限网络连接到远程服务器。支持Java的手机的普及,所以目前它成为最好的移动游戏开发环境。J2ME不是手机上配置的唯一解释语言,但是它是许多厂商支持的行业标准。一些专用的解释语言也在某些区域有上着上佳的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现。如北美的Qualcomm的BREM和一些韩国运营上支持的名为GVM的标准。 基于以上分析,Java手机游戏的开发具有重要的意义。 1.1.5健壮性 Java致力于检查程序在编译和运行时的错误,并自动回收内存,减 少了内存出错的可能性。Java取消了C语言的结构、指针、#define语句、多重继承、goto语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间。 1.2 J2ME介绍 虽然 Java 已经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统之中。Java平台演进到Java2后,Java平台分别针对不同领域的需求被分成四个版本,亦即J2EE、J2SE、J2ME以及JavaCard中J2ME定位在消费性电子产品的应用上。这个版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。这个版本的应用层面相当广泛,会是未来Java平台发展的重点项目。 J2ME在1999年的JavaOne开发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算机设备的开发人员。J2ME的一个关键优点是,J2ME与所有支持Java的设备都是兼容的。支持Java的设备就是任何运行Java虚拟机器的计算机。Motorola、Nokia等生产厂商都生产支持Java的设备。 JAVJ2ME平台是由配置(Configuration)和简表(Profile)构成的。配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。简表是针对一系列设备提供的开发包集合。在J2ME 中还有一个重要的概念是可选包(Optional Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了JSR82(Bluetooth API)提供了对蓝牙的支持。 目前,J2ME中有两个最主要的配置,分别是Connected Limited Devices Configuration(CLDC)和Connected Devices Configuration(CDC)。 1.3 关于ECLIPSE Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个 框架 财政支出绩效评价指标框架幼儿园园本课程框架学校德育工作框架世界古代史知识框架质量保证体系框架图 和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。 1.4 WTK介绍 WTK 的全称是Sun J2ME Wireless Toolkit —— Sun的无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。使用其中的工具可以开发与 Java Technology for the Wireless Industry (JTWI, JSR 185) 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 兼容的设备上运行的j2me 应用程序。 WTK是用来开发MIDP的,为了让MIDlet可以顺利编译和执行,WTK必须具有CLDC和MIDP的类库,WTK可以帮助我们省去额外安装调试这些类库的时间 2.需求分析 2.1游戏的介绍 游戏的名称叫“贪吃蛇”,节:一条蛇可以看成有许多正方形的“小格子”拼凑成,我把它称作节。节是蛇身上最小的单位。 段:当许多节连成一条直线,我称它为段。贪吃蛇只有一段,如果它拐弯就变成两段。 链表:用来保存每一段的状态,链表的元素单位是段。且链 表的最后一个元素表示蛇的头部段。 坐标系:MIDP中的坐标以左上角那点为(0,0),向右则x递增,向下则y递增。 2.2游戏开发的可行性 游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件的水平的提高。游戏开发新技术层出不穷,经典游戏比比皆是,游戏这个名称一直存在于每个人的日常生活中。因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色.而从技术方面来看,现在的java技术也融入了手机中。这些都为开发的这款贪吃蛇游戏提供了条件。 2.3设计目的 综合运用在校所学的知识和技能,设计开发贪吃蛇游戏,使自己熟悉应用系统的开发的过程,培养独立思考的能力,校验学习效果和动手能力,提高 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 实践能力。 2.4游戏需求 给出一条小蛇和随机出现一个食物,当小蛇吃到食物时就加分。 2.4.1游戏界面需求 良好的用户界面,有分数显示和暂停。 3.1 游戏的流程图 3.1游戏主界面的开发 屏幕的背景用白色,由于屏幕高比宽长,所以取以宽为边长的矩形区域作为游戏区域,下面的部分作为分数、信息区域。 图一(游戏的主界面) 3.2 绘制蛇身 protected void paint(Graphics g) { g.setColor(0, 255, 0); g.fillRect(0,0,width,height); g.setColor(0); //绘制蛇身 for(int i = 0;i < snakeNum;i++){ g.fillRect(snake[i][0],snake[i][1],SNAKEWIDTH,SNAKEWIDTH); } //绘制食物 if(b){ g.fillRect(foodX,foodY,SNAKEWIDTH,SNAKEWIDTH); } 3.3创建初始“蛇”及“蛇”的移动 蛇的初始长度为5,边长为10个像素(背景为黄色),蛇头初始位于屏幕(100,30),方向向左,用向量表来记录每个蛇的位置以及方向。 部分参考代码如下: private void move(int direction){ //蛇身移动 for(int i = snakeNum - 1;i > 0;i--){ snake[i][0] = snake[i - 1][0]; snake[i][1] = snake[i - 1][1]; 3.4 吃掉食物,蛇身增长 当小蛇吃掉食物后,会增长, 部分代码: * 吃掉食物,自身增长 private void eatFood(){ //判别蛇头是否和食物重叠 if(snake[0][0] == foodX && snake[0][1] == foodY){ snakeNum++; generateFood(); 3.4随机产生食物 部分代码: * 产生食物 * 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 :食物的坐标必须位于屏幕内,且不能和蛇身重合 */ private void generateFood(){ while(true){ foodX = Math.abs(random.nextInt() % (width - SNAKEWIDTH + 1)) / SNAKEWIDTH * SNAKEWIDTH; foodY = Math.abs(random.nextInt() % (height - SNAKEWIDTH + 1)) / SNAKEWIDTH * SNAKEWIDTH; boolean b = true; for(int i = 0;i < snakeNum;i++){ if(foodX == snake[i][0] && snake[i][1] == foodY){ b = false; break; if(b){ break; case RIGHT: if(direction != DIRECTION_LEFT){ direction = DIRECTION_RIGHT; break; case FIRE: //暂停和继续 isPaused = !isPaused; break; 3.6 判断游戏结束 只有一种游戏结束的方式,即蛇头碰到蛇身游戏结束。 参考代码: private boolean isGameOver(){ //边界判别 if(snake[0][0] < 0 || snake[0][0] > (width - SNAKEWIDTH) || snake[0][1] < 0 || snake[0][1] > (height - SNAKEWIDTH)){ return true; //碰到自身 for(int i = 4;i < snakeNum;i++){ if(snake[0][0] == snake[i][0] && snake[0][1] == snake[i][1]){ return true; return false; 4游戏测试与发布 4.1游戏运行的效果图 图一表示小蛇正在移动 图二表示,随机产生一个食物 图三表示小蛇吃掉食物增长后继续移动 4.2 测试结果 程序运行良好,未出现bug. 5.自我评价和总结 5.1遇到的问题及解决办法 先是图形化界面的设计,一直想不出好的办法,最后翻看了教程才解决了这个问题,后来在蛇的移动上也遇到了些问题。上网查了一下,才知道蛇身是由一连串的基本图形组成的,每过1秒检查前面是什么,如果是空的,就把图画成普通身子的样子。再在前方在画一个头,并将其左标记入数组,数组要足够大,在把尾巴画成背景色,如果前面是食物,尾巴就不删除。这个里面的难点就是数组里面的操作 /**已经使用的节点数量*/ int snakeNum; /**贪吃蛇运动方向,0代表向上,1代表向下,2代表向左,3代表向右*/ int direction; /*移动方向*/ /**向上*/ private final int DIRECTION_UP = 0; /**向下*/ private final int DIRECTION_DOWN = 1; /**向左*/ private final int DIRECTION_LEFT = 2; /**向右*/ private final int DIRECTION_RIGHT = 3; /**游戏区域宽度*/ int width; /**游戏区域高度*/ int height; /**蛇身单元宽度*/ private final byte SNAKEWIDTH = 4; /**是否处于暂停状态,true代表暂停*/ boolean isPaused = false; /**是否处于运行状态,true代表运行*/ boolean isRun = true; /**时间间隔*/ private final int SLEEP_TIME = 300; /**食物的X坐标*/ int foodX; /**食物的Y坐标*/ int foodY; /**食物的闪烁控制*/ boolean b = true; /**Random对象*/ Random random = new Random(); public SnakeCanvas() { //初始化 init(); width = this.getWidth(); height = this.getHeight(); //启动线程 new Thread(this).start(); * 初始化开始数据 private void init(){ //初始化节点数量 snakeNum = 7; //初始化节点数据 for(int i = 0;i < snakeNum;i++){ snake[i][0] = 100 - SNAKEWIDTH * i; snake[i][1] = 40; //初始化移动方向 direction = DIRECTION_RIGHT; //初始化食物坐标 foodX = 100; foodY = 100; protected void paint(Graphics g) { g.setColor(0, 255, 0); g.fillRect(0,0,width,height); g.setColor(0); //绘制蛇身 for(int i = 0;i < snakeNum;i++){ g.fillRect(snake[i][0],snake[i][1],SNAKEWIDTH,SNAKEWIDTH); } //绘制食物 if(b){ g.fillRect(foodX,foodY,SNAKEWIDTH,SNAKEWIDTH); private void move(int direction){ //蛇身移动 for(int i = snakeNum - 1;i > 0;i--){ snake[i][0] = snake[i - 1][0]; snake[i][1] = snake[i - 1][1]; //第一个单元格移动 switch(direction){ case DIRECTION_UP: snake[0][1] = snake[0][1] - SNAKEWIDTH; break; case DIRECTION_DOWN: snake[0][1] = snake[0][1] + SNAKEWIDTH; break; case DIRECTION_LEFT: snake[0][0] = snake[0][0] - SNAKEWIDTH; break; case DIRECTION_RIGHT: snake[0][0] = snake[0][0] + SNAKEWIDTH; break; * 吃掉食物,自身增长 private void eatFood(){ //判别蛇头是否和食物重叠 if(snake[0][0] == foodX && snake[0][1] == foodY){ snakeNum++; generateFood(); * 产生食物 * 说明:食物的坐标必须位于屏幕内,且不能和蛇身重合 */ private void generateFood(){ while(true){ foodX = Math.abs(random.nextInt() % (width - SNAKEWIDTH + 1)) / SNAKEWIDTH * SNAKEWIDTH; foodY = Math.abs(random.nextInt() % (height - SNAKEWIDTH + 1)) / SNAKEWIDTH * SNAKEWIDTH; boolean b = true; for(int i = 0;i < snakeNum;i++){ if(foodX == snake[i][0] && snake[i][1] == foodY){ b = false; break; if(b){ break; * 判断游戏是否结束 * 结束条件: * 1、蛇头超出边界 * 2、蛇头碰到自身 private boolean isGameOver(){ //边界判别 if(snake[0][0] < 0 || snake[0][0] > (width - SNAKEWIDTH) || snake[0][1] < 0 || snake[0][1] > (height - SNAKEWIDTH)){ return true; //碰到自身 for(int i = 4;i < snakeNum;i++){ if(snake[0][0] == snake[i][0] && snake[0][1] == snake[i][1]){ return true; return false; * 事件处理 public void keyPressed(int keyCode){ int action = this.getGameAction(keyCode); //改变方向 switch(action){ case UP: if(direction != DIRECTION_DOWN){ direction = DIRECTION_UP; break; case DOWN: if(direction != DIRECTION_UP){ //重新绘制 repaint(); long end = System.currentTimeMillis(); if(end - start < SLEEP_TIME){ Thread.sleep(SLEEP_TIME - (end - start)); } }catch(Exception e){} 论文编号: 德州科技职业学院 毕 业 论 文 姓 名:____________________ 学 号:____________________ 所在院系:____________________ 所学专业:____________________ 指导教师:____________________ 完成时间:____________________ 贪吃蛇游戏设计 目录 JAVA贪吃蛇游戏设计 ................................................................................................1 目录................................................................................................................................1 前言................................................................................................................................3 1.JAVA语言的概述及开发工具 .................................................................................5 1.1Java语言特点 ....................................................................................................................................................5 1.1.1 平台无关性................................................................................................................................................5 1.1.2安全性..........................................................................................................................................................5 1.1.3面向对象 .....................................................................................................................................................5 1.1.4分布式..........................................................................................................................................................5 1.1.5健壮性 ..........................................................................................................................................................5 1.2 J2ME介绍 .........................................................................................................................................................6 1.3 关于ECLIPSE ..................................................................................................................................................7 1.4 WTK介绍 ..........................................................................................................................................................8 2.需求分析 ....................................................................................................................8 2.1游戏的介绍.........................................................................................................................................................8 2.2游戏开发的可行性 ...........................................................................................................................................9 2.3设计目的 .............................................................................................................................................................9 2.4游戏需求 .............................................................................................................................................................9 2.4.1游戏界面需求 ............................................................................................................................................9 2.4.2游戏形状需求 ..........................................................................................................................................10 2.4.3键盘事件处理 ..........................................................................................................................................10 2.4.4显示需求 ...................................................................................................................................................10 2.4.5接口控制 ...................................................................................................................................................10 2.4.6环境介绍 ...................................................................................................................................................10 3.功能设计 ..................................................................................................................11 3.1 游戏的流程图 .................................................................................................................................................11 3.详细设计 ................................................................................................................. 12 3.1游戏主界面的开发 .........................................................................................................................................12 3.2 绘制蛇身 ..........................................................................................................................................................12 3.3创建初始“蛇”及“蛇”的移动 ..............................................................................................................13 3.4 吃掉食物,蛇身增长....................................................................................................................................13 3.4随机产生食物 ..................................................................................................................................................14 3.5键盘事件处理 ..................................................................................................................................................15 3.6 判断游戏结束 .................................................................................................................................................16 4游戏测试与发布 ..................................................................................................... 18 4.1游戏运行的效果图 .........................................................................................................................................18 4.2 测试结果 ..........................................................................................................................................................19 5.自我评价和总结 ..................................................................................................... 19 5.1遇到的问题及解决办法 ................................................................................................................................19 5.2 总结 ...................................................................................................................................................................20 6.参考资料 .............................................................................................................. 20 7.附加源代码 ............................................................................................................. 20 随着3G的到来,让人们的目光聚集到一个新兴的互联网终端 ——手机上。手机的随身性让玩家有了随时随地完游戏的可能。据我调查行业分析师也对这一行业持普遍的乐观态度。yramid Researcher 的最新报告显示,手机游戏市场正在稳步发展。用户数从2008年的1.83亿到现在将增长到3亿。据报告分析,2014年,市场 规模有望达到180亿美元。 手机游戏的发展有以下推动因素 1. 更好更快的无限网络以及易于操作的手机终端改善了用户 2. 触摸屏,3D动画处理能力以及在线互动能力让游戏开发商把游戏做的更好; 3.苹果应用商店模式刺激作用。 J2ME是一种针对移动电话和PDA这样的小型设备的Java语言。大部分的手机厂商都迫切希望Java手机推广应用。上千万的手机已经到了消费者手中。它已经极大的提高了移动电话支持游戏的能力。它有着比SMS或WAP 更好控制的界面。允许使用子图形动画。并且可以通过无限网络连接到远程服务器。支持Java的手机的普及,所以目前它成为最好的移动游戏开发环境。J2ME不是手机上配置的唯一解释语言,但是它是许多厂商支持的行业标准。一些专用的解释语言也在某些区域有上着上佳的表现。如北美的Qualcomm的BREM和一些韩国运营上支持的名为GVM的标准。 基于以上分析,Java手机游戏的开发具有重要的意义。
本文档为【毕业设计(论文)-基于java的贪吃蛇游戏开发】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_686908
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:21
分类:
上传时间:2017-06-11
浏览量:91