基于java的贪吃蛇游戏开发.doc_第1页
基于java的贪吃蛇游戏开发.doc_第2页
基于java的贪吃蛇游戏开发.doc_第3页
基于java的贪吃蛇游戏开发.doc_第4页
基于java的贪吃蛇游戏开发.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

贪吃蛇大战的设计与实现贪吃蛇大战的设计与实现 专业:专业: 姓名:姓名: 班级:班级: 学号:学号: 指导教师:指导教师: 2 目录目录 前言前言.4 1.JAVA 语言的概述及开发工具语言的概述及开发工具 5 1.1Java 语言特点语言特点 .5 1.1.1 平台无关性.5 1.1.3 面向对象5 1.2 J2ME 介绍介绍5 1.3 关于关于 ECLIPSE .6 1.4 WTK 介绍介绍.7 2.需求分析需求分析.7 2.1 游戏的介绍游戏的介绍 .7 2.2 游戏开发的可行性游戏开发的可行性 .7 2.3 设计目的设计目的 .8 2.4 游戏需求游戏需求 .8 2.4.1 游戏界面需求8 2.4.2 游戏形状需求8 2.4.3 键盘事件处理8 2.4.4 显示需求8 2.4.5 接口控制8 2.4.6 环境介绍9 3.详细设计详细设计.9 3.1 绘制蛇身绘制蛇身.9 3.2 创建初始创建初始“蛇蛇”及及“蛇蛇”的移动的移动 .10 3.3 吃掉食物,蛇身增长吃掉食物,蛇身增长 10 3.4 随机产生食物随机产生食物 .10 3 3.5 键盘事件处理键盘事件处理 .11 3.6 判断游戏结束判断游戏结束 12 4 游戏测试与发布游戏测试与发布13 4.1 游戏运行的效果图游戏运行的效果图 .13 4.2 测试结果测试结果 13 5.自我评价和总结自我评价和总结14 5.1 遇到的问题及解决办法遇到的问题及解决办法 .14 5.2 总结总结 14 6参考资料参考资料14 4 前言前言 随着 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 手机游戏的开发具有重要的意义。 1.Java 语言的概述及开发工具语言的概述及开发工具 1.1Java 语言特点语言特点 1.1.1 平台无关性平台无关性 Java 引进虚拟机原理,并运行于虚拟机,实现不同平台之间的 Java 接口。Java 的数据类型与机器无关。 1.1.2 安全性安全性 5 Java 的编程类似 C+,但舍弃了 C+的指针对存储器地址的直接 操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过 指针入侵系统。它提供了安全管理器,防止程序的非法访问。 1.1.3 面向对象面向对象 Java 吸收了 C+面向对象的概念,将数据封装于类中,实现了 程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反 复利用。 1.1.4 分布式分布式 Java 建立在 TCP/IP 网络平台上,提供了用 HTTP 和 FTP 协议传 送和接收信息的库函数,使用其相关技术可以十分方便的构建分布 式应用系统。 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 虚拟机。简表是针对一系列设备提供的开发包集合。 6 在 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) 规范兼容的设备上运行的 j2me 应 用程序。 WTK 是用来开发 MIDP 的,为了让 MIDlet 可以顺利 编译和执行, WTK 必须具有 CLDC 和 MIDP 的类库,WTK 可以 7 帮助我们省去额外安装调试这些类库的时间 2.需求分析需求分析 2.1 游戏的介绍游戏的介绍 游戏的名称叫“贪吃蛇” ,节:一条蛇可以看成有许多正方形的 “小格子”拼凑成,我把它称作节。节是蛇身上最小的单位。 段:当许多节连成一条直线,我称它为段。贪吃蛇只有一段, 如果它拐弯就变成两段。 链表:用来保存每一段的状态,链表的元素单位是段。且链表 的最后一个元素表示蛇的头部段。 坐标系:MIDP 中的坐标以左上角那点为(0,0),向右则 x 递增, 向下则 y 递增。 2.2 游戏开发的可行性游戏开发的可行性 游戏开发至今已经有 30 多年,在这个短暂的时期里,随着硬件 的水平的提高。游戏开发新技术层出不穷,经典游戏比比皆是,游 戏这个名称一直存在于每个人的日常生活中。因此,游戏对于现代 人的成长历程,绝对是一个不可或缺的重要角色.而从技术方面来看, 现在的 java 技术也融入了手机中。这些都为开发的这款贪吃蛇游戏 提供了条件。 2.3 设计目的设计目的 综合运用在校所学的知识和技能,设计开发贪吃蛇游戏,使自 己熟悉应用系统的开发的过程,培养独立思考的能力,校验学习效 果和动手能力,提高工程实践能力。 2.4 游戏需求游戏需求 给出一条小蛇和随机出现一个食物,当小蛇吃到食物时就加分。 8 2.4.1 游戏界面需求游戏界面需求 良好的用户界面,有分数显示和暂停。 2.4.2 游戏形状需求游戏形状需求 良好的方块形状设计,绘制小蛇和食物,小蛇由几个方块组成, 食物由一个方块组成。 2.4.3 键盘事件处理键盘事件处理 小蛇可以通过键盘方向键(上,下,左,右)进行方向的移动。 2.4.4 显示需求显示需求 当小蛇吃掉几个食物后会变长,并且吃完食物时食物会消失, 并立即产生一个 1 个新的事物。 2.4.5 接口控制接口控制 本软件通过键盘进行操作,在 windows 操作系统下,利用键盘 的上下左右键进行操作,要使用键盘的接口事件。 2.4.6 环境介绍环境介绍 操作系统:Microsoft Windows XP 程序语言:Java 开 发 包:Java(TM) 2 Standard Edition (5.0) Sun Micro. J2ME Wireless ToolKit 2.5.1 IDE: Eclipse-v10 9 3.详细设计详细设计 3.1 绘制蛇身绘制蛇身 protected void paint(Graphics g) /清屏 g.setColor(0, 255, 0); g.fillRect(0,0,width,height); g.setColor(0); /绘制蛇身 for(int i = 0;i 0;i-) snakei0 = snakei - 10; snakei1 = snakei - 11; 10 3.3 吃掉食物,蛇身增长吃掉食物,蛇身增长 当小蛇吃掉食物后,会增长, 部分代码: /* * 吃掉食物,自身增长 */ private void eatFood() /判别蛇头是否和食物重叠 if(snake00 = foodX 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 (width - SNAKEWIDTH) | snake01 (height - SNAKEWIDTH) return true; /碰到自身 for(int i = 4;i snakeNum;i+) if(snake00 = snakei0 return false; 13 4 游戏测试与发布游戏测试与发布 4.1 游戏运行的效果图游戏运行的效果图 图 1 欢迎界面 图 2 贪吃蛇移动界面 4.2 测试结果测试结果 程序运行良好,未出现 bug. 5.自我评价和总结自我评价和总结 5.1 遇到的问题及解决办法遇到的问题及解决办法 先是图形化界面的设计,一直想不出好的办法,最后翻看了教 程才解决了这个问题,后来在蛇的移动上也遇到了些问题。上网查 了一下,才知道蛇身是由一连串的基本图形组成的,每过 1 秒检查 前面是什么,如果是空的,就把图画成普通身子的样子。再在前方 在画一个头,并将其左标记入数组,数组要足够大,在把尾巴画成 背景色,如果前面是食物,尾巴就不删除。这个里面的难点就是数 组里面的操作和坐标的表示。把头添在最后一个元素,把第一个元 14 素提起。 5.2 总结总结 这款游戏

温馨提示

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

评论

0/150

提交评论