首页 JavaGui开发俄罗斯方块游戏毕业论文

JavaGui开发俄罗斯方块游戏毕业论文

举报
开通vip

JavaGui开发俄罗斯方块游戏毕业论文JavaGui开发俄罗斯方块游戏毕业论文 使用JAVA GUI开发 俄罗斯方块游戏 学 院: 软件学院 专 业: 软件工程 指导教师: 2014年9月 1 使用JAVAGUI开发俄罗斯方块游戏 摘 要 随着通信技术的发展和电脑的普及,小游戏的开发技术越来越为人们所关注。以J2SE为开发平台,利用Java提供强大工具,不但可以在电脑上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种电脑小游戏。本文在介绍J2SE及其体系结构的基础上,以俄罗斯方块游戏为实例,...

JavaGui开发俄罗斯方块游戏毕业论文
JavaGui开发俄罗斯方块游戏毕业 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 使用JAVA GUI开发 俄罗斯方块游戏 学 院: 软件学院 专 业: 软件 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 指导教师: 2014年9月 1 使用JAVAGUI开发俄罗斯方块游戏 摘 要 随着通信技术的发展和电脑的普及,小游戏的开发技术越来越为人们所关注。以J2SE为开发平台,利用Java提供强大工具,不但可以在电脑上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种电脑小游戏。本文在介绍J2SE及其体系结构的基础上,以俄罗斯方块游戏为实例,描述了借助J2SE的类库开发电脑小游戏的过程。 关键词:游戏,应用程序,永久性数据 The Use of JAVAGUI Development of Tetris Game Abstract Along with communication development and computer popularization, people more and more pay attention to the handset game development technology. Develops the platform take J2SE, provides the powerful tool using Java, not only may realize the handset functions that static HTML technology be unable to realize, such as computation processing, data storage, and communication with server, but also can develop all kinds of handset games. On the basis of the technology and architecture of J2SE being introduced, the Russian game was taken as a example, the development process of game with the aid of the J2SE class library is described in this article. KeyWords: game,application pragram, Permanent data 目 录 1 引言.............................................................. 1 1.1研究现状 ........................................................ 1 1.2主要研究的目的及内容 ............................................ 2 2 应用需求 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 与可行性分析.......................................... 4 2.1 应用需求分析.................................................... 4 2.2 其他需求分析.................................................... 5 2.4 可行性分析...................................................... 6 2.4.1经济可行性 .................................................... 6 2.4.2技术可行性 .................................................... 6 2.4.3 运行可行性.................................................... 6 2.4.4 时间可行性.................................................... 6 2.4.5 法律可行性.................................................... 6 2.5 系统开发步骤.................................................... 7 3 工程概况.......................................................... 8 3.1 项目名称........................................................ 8 3.2 设计平台........................................................ 8 3.3程序设计思想 ................................................... 10 3.4主要实现的功能 ................................................. 11 4 开发背景......................................................... 13 5 游戏的实现....................................................... 21 5.1游戏设计的具体实现 ............................................. 21 5.1.1游戏界面的设计实现 ........................................... 21 5.1.2俄罗斯方块的造型 ............................................. 22 5.1.3俄罗斯方块的旋转 ............................................. 22 5.1.4如何实现方块的运动和自动消除满行的方块 ....................... 23 第 ? 页 共 ? 页 5.1.5游戏速度和游戏级别自由选择 ................................... 24 5.1.6游戏得分的计算和游戏菜单的编辑 ............................... 25 5.2 游戏功能的介绍................................................. 25 6 系统测试......................................................... 28 6.1 游戏界面菜单选项的功能测试..................................... 28 6.2 按键事件的功能测试............................................. 28 6.3方块堆砌与消行测试 ............................................. 29 6.4 测试结果分析................................................... 29 7 总结............................................................. 30 参考文献........................................................... 31 致谢............................................................... 32 第 ?页 共 ? 页 1 引言 1.1研究现状 Java语言是美国Sun Microsystem的James Gosling、Pratrick Naughton 及Mike Sheridan等人于1991年精心设计出来的计算机编程语言,其构想在于实现使用同一种编程语言所写出来的程序可以在不同的平台上运作。这种架构对于消费性电子产品而言是具有革命性的,因为在消费性电子产品中的处理器及操作系统各不相同,要在这些平台上开发程序必须要了解各个平台的特性,以及其提供的API使用方式,分别开发不同的版本才能执行,影响应用程序的普及性。 近几年,由于微处理器性能的大幅提升,加上无线通讯技术的突破,手持式电脑设备开始受到大众的青睐。短短几年内,电脑已经升级了几代产品,普及率逐年攀升,生产效率不断上升,产品价格比个人电脑的摩尔定律有更惊人的下调,以至电脑是大多是城市居民不可缺少的一件随身设备。继短信、彩信等服务之后,中国移动提供基于Java的百宝箱业务,应用产品遍及商务应用、信息获取、英 [1]汉互译、游戏娱乐等多媒体领域。 为了适应移动数据的发展,推动无线电子商务等业务的发展,J2SE既用于嵌入式系统的Java被引入电脑领域。J2SE的出现实际上是Java技术的回归。作为Java2平台的一部分,J2SE与J2ME、J2EE一起,为应用的客户端和服务器 [2]端建立了完整的开发、部署环境。随着J2SE的应用,它为移动互联引入了一种新的模型,既允许电脑可以从互联网上下载各种应用程序,并在电脑创造可执行环境离线运行这些程序。由于定义了可执行下载的标准,并在电脑上创立了可执行环境和程序开发语言,由此,在电脑业第一次为软件开发商创造了巨大的商业机会,电脑用户在得到丰富应用体验的同时,也大大提高了运营商的网络流量。 随着通信技术的发展和电脑的普及,电脑游戏的开发技术越来越为人们所关注。以J2SE为开发平台,利用Java提供强大工具,不但可以在电脑上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种电脑游戏。 JAVA语言继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。随着21世纪信息社会的到来,电脑在人们的工作和生活中的 第 1 页 共 32页 深入,要求我们越来越多地与电脑打交道,为了使用户在繁忙的日程工作中得到 [3]放松,于是出现了各种各样的休闲软件,如聊天工具,游戏等等。于是我们小组着手设计开始一个这样的电脑游戏软件。通过这学期来对J2SE技术的学习,我初步掌握了JAVA语言的最基本的知识,于是在指导老师的指导下动手用J2SE编写俄罗斯方块电脑游戏。 无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。它是永恒的娱乐经典,但它实际上又和那些传统的经典娱乐方式不同,因为它的本质是电子化的,所以它的确属于现代产物。《俄罗斯方块》举世闻名的游戏性,在该游戏新鲜出炉时就显得非常直观。某些与坠落的玩具碎片和它们的形状有关的东西,使得哪怕新手也会很自然地企图把它们排列起来,并加以适当组合,就好似《俄罗斯方块》触动了我们某些内在的感官,使得哪怕是我们当中最杂乱无章的人也要把事情整理妥当。 在曾经发布过的所有游戏中,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都要浪费人们的时间。至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。 为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、娱乐的一个方式,我们小组开始着手用JAVA语言开发一个经典的俄罗斯方块游戏。 1.2主要研究的目的及内容 游戏作为人们日常生活的一个重要的娱乐项目,也带动了巨大的游戏相关产业市场的发展。游戏平台从游戏机、电视游戏,到pc游戏,到电脑游戏,中间经历了很多的技术的变革。随着新技术的发展和人们生活水平的提高,电脑开始逐渐普及,电脑以其小巧便捷,方便的特性成为人们的必备通讯工具。而基于电脑平台的电脑游戏也就拥有了巨大的市场空间,随着3g的开通和应用,电脑游戏必将迎来新的一轮游戏热潮。 小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,方便人们 第 2 页 共 32页 娱乐的目的。另外也通过本程序将几年来所学的专业知识和其他方面的知识融入到实际应用中。 通过此次课题的设计,掌握如何制作一个俄罗斯方块游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。 第 3 页 共 32页 2 应用需求分析与可行性分析 项目实现了俄罗斯方块游戏的所有基本功能,同时,为了满足玩家的个人需求,在游戏中设置了难度选择,从而使玩家根据自身水平选择合适的游戏难度;在程序中设置了当游戏窗口最小化时,游戏能够自动暂停,窗口恢复时游戏自动继续的功能以方便玩家的游戏操作;游戏按键使用最基本的键位设置,从而使操作更加简单,更容易上手,且不易失误。力争使游戏具有可靠性,安全性,完整性,灵活性,开发出一款更加适合人们需求的俄罗斯方块游戏。 屏幕上有一个X列Y行的区域,计算机自动产生7种不同形状的方块,并出现在区域的最顶端,然后每过一个固定的时间向下落移动一格。玩家可用上、下、左、右及空格键来控制方块的旋转和移动,以便按照玩家所需要的形态和位置落下,不过前提是方块移动和旋转后的位置必须是空的。这7种方块可以旋转90?、180?、270?,因此每种方块有4种状态,7种方块总共有28种状态。另外,在游戏区域产生一个新的方块的一瞬间,立即产生下一个下落方块的形状并在提示区域的左上方有预先提示。同时,在游戏界面的右下方,将显示玩家所得的分数以及游戏的难度级别。每当游戏玩家成功消除一行方块时,将按照一定的算法计算出所得分数,并修改游戏状态区域的分数和行数的数值。本游戏提供了数种 [4]游戏级别,用户可根据自己的兴趣选择相应的级别。 下落方块可以通过旋转改变其显示形状,并且不断地往下落,直到它接触到游戏区域底部或者其他已经垒叠起来的下落方块。当一个下落方块到达游戏区域底部或者接触到其他已经垒叠起的下落方块后,其位置即确定下来,并占有该空间的位置区域。如果落下时,方块的方格能填满某一行,则这一行可消去。消去一行后,游戏可给玩家加分,垒在其上的方块将按照一定的算法落下来代替该行空间。游戏的结束是以下落方块的顶部到达游戏区域顶部作为判断依据,若存在空格的方块填满整个窗口,则游戏失败。 系统默认设置使用右边的窗口,用光标操作:“?”左移一格;“?”右移一格;“?”变形;“?”下移一格;“空格”丢下方块。 2.1 应用需求分析 硬件环境:内存:512M,硬盘:256M,cpu:1.8HZ以上软件环境: 第 4 页 共 32页 MyEclipse8.5,JDK1.6和MySQL数据库。2.2 运行需求分析 硬件条件:酷睿 CPU、1G RAM、10G硬盘以上的PC机;打印机;局域网。 软件条件:Windows XP IE6.0以上 2.2 其他需求分析 (一)、 游戏主界面功能需求 良好的用户界面,能够在视觉上吸引玩家。为了使界面简洁美观,需要在主界面中添加背景图片来渲染游戏的气氛,同时为了便于玩家的操作,需要设置四个按钮供玩家选择,分别是“游戏”、“控制”、“风格”、“系统”。这样的设置让用户一目了然。玩家可以自己选择不同的背景颜色,游戏难度,和不同风格的界面。 (二)、 俄罗斯游戏功能需求 游戏界面要求美观大方。该界面由4个模块构成,分别是游戏、控制、风格和系统。其中游戏条包括新游戏、设置前景色、设置背景色、增加难度、降低难度和退出等功能。控制面板包括预提示面板,当前信息提示面板和游戏控制按钮面板。在游戏中,玩家可以根据自己的需要设置游戏级别。为了满足玩家的心理需求,还添加了排行榜的功能,方便玩家及时 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 自己游戏战绩,在本游戏上获 [5]得成绩前十名,将进入游戏的英雄榜。为了进一步方便玩家的实际操作,还为部分操作添加了快捷键的功能,用户无需点击按钮或菜单项即可达到游戏目的。 (三)、 俄罗斯方块的需求 良好的方块形状设计,绘制七种常见的基本图形,各个方块要能实现旋转变形、移动和显示。方块的旋转可设为顺时针或逆时针,本游戏采用逆时针变形。 (四)、 键盘处理事件的需求 方块下落时,可通过键盘方向键(上、下、左、右、空格键)对该方块进行向上(旋转变形),向下移动、向左移动、向右移动和丢下操作。 (五)、 显示需求 当方块填满一行时可以消行,剩余方块向下按照一定的算法向下移动并统计分数。当达到一定的分数时游戏升级,并显示游戏升级信息;当游戏方块填满整个屏幕时,游戏结束,并显示游戏结束信息。本游戏共设置不同级别,方块的下落速度随着级别的升高而加快。 第 5 页 共 32页 2.4 可行性分析 2.4.1经济可行性 本游戏是为丰富人们业余生活开发的,规模适中,工作复杂性低,实用性强。从开发人力、物力、时间上考虑,开发成本少。而且利用了开源开发环境MyEclipse8.5,加快了开发进度,大大的缩短了开发周期,节省了人力、物力、时间,提高了项目开发的效率,降低了开发成本。由于需求分析完整,减少了很 [6]多后期维护的复杂性。另外,本系统具有很实用的现实意义。 因此,从经济角度考虑本系统的开发在经济上是完全可行的。 2.4.2技术可行性 可用于本游戏的编程语言有Java 、VC++、C#.NET等,考虑到编写程序的难易程度,和对语言的了解程度以及各种编程语言自身的特点,选择乐Java作为编程语言进行开发。 首先 ,作为一种程序设计语言 ,Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、易移植的、多线程的动态语言。它不依赖于机器的结构,并且提供了并发的机制、具有很高的性能。其次 ,它最大限度地利用了网络,Java的小应用程序可在网络上传输而不受 CPU和环境的限制。另外 ,Java还提供了丰富的类库 ,使程序设计者可以很方便地建立自己的系统。 2.4.3 运行可行性 本游戏是采用java的GUI ( 图形用户界面) 组件创建的简单有好的操作界面,运行也效果简单明了,所有功能均根据基本需求进行开发。强调人—机—环境三者作为一个系统进行总体设计。使操作更人性化,减轻了用户的认知负担,使其 [7]更适合用户的操作需求。对所有数据的输入进行完整性和合法性检查,尽量减少误操作。因此在操作上是可行的。 2.4.4 时间可行性 从时间上看,在两个月的时间里学习相关知识,并开发JAVA GUI 的俄罗斯方块游戏,时间有点紧凑但是完全可行的。 2.4.5 法律可行性 本游戏的开发作为毕业课程设计以提高分析和解决实际问题的能力,以个人为单位,仅供个人平常娱乐所用,所用他人的成果部分都已注明。所以不存在侵权 第 6 页 共 32页 的问题。该软件是合法的,不会引起任何社会问题。因此,从法律上考虑本系统是可行的。 2.5 系统开发步骤 详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可 [8]以把这个描述直接翻译成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的代码。因此,详细设计的结果基本上决定了最终的程序代码的质量。 第 7 页 共 32页 3 工程概况 3.1 项目名称 俄罗斯方块游戏 3.2 设计平台 J2SE是Java 2的一个组成部分,它与J2ME、J2EE并称。根据Sun的定义:J2SE是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。J2SE技术在1999年的JavaOne Developer Conference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。 Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布 [9]式的网络程序的开发,如电子商务网站和ERP系统。 Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程 Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制 Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒 简单讲就是: J2SE: java 2 Standard edition (java 2 标准版) J2EE: java 2 enterprise edition( Java 2 企业版) J2ME: java 2 micro edition (Java 2 微缩版) 他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类 应用场合,API的覆盖范围各不相同。 笼统的讲,可以这样理解:J2SE是基础;压缩一点,再增加一些CLDC 第 8 页 共 32页 等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。 补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ,不仅仅是比标准版多了一些类。J2EE又包括许多组件,如Jsp, Servlet, JavaBean, EJB, JDBC, JavaMail等。 J2SE商业版本,标准版本 (Java2 Standard Edition) 定位在客户端,主要用于桌面应用软件的编程。 J2SE 包含那些构成Java语言核心的类。 比如:数据库连接、接口定义、输入/输出、网络编程 J2SE 是J2EE的基础,他大量的JDK代码库是每个要学习J2EE的编程人员必须掌握的。 可以把Configuration 当作是J2SE 对于两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、记忆体大小等规范,同时也定了一组在这些装置上执行的 Java 程序所能使用的类别函式库、这些规范之中所定义的类别函式库为 Java 标准核心类别函式库的子集合以及与 [10]该型态装置特性相符的扩充类别函式库。比方就CLDC 的规范来说,可以支援的核心类别函式库为java.lang.* 、java.io.*、java.util.*,而支援的扩充类别函式库为java.microedition.io.*。区分出两种主要的Configuration 之後,J2SE 接著在定义出Profile的概念。Profile 是架构在Configuration 之上的规格。之所以有Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java 程序该如何开发以及它们应该具有哪些功能。因此Profile 之中定义了与特定嵌入式装置非常相关的扩充类别函式库,而 Java 程序在各种嵌入式装置上的使用者介面该如何呈现就是定义在Profile 里头。Profile 之中所定义的扩充类别函式库是根据底层Configuration 内所定义的核心类别函式库所建立。 与J2ME和J2EE相比,J2SE总体的的运行环境和目标更加多样化,但其中每一种产品的用途却更为单一,而且资源限制也更加严格。为了在达到标准化和兼容性的同时尽量满足不同方面的需求,J2SE的架构分为Configuration、Profile和Optional Packages(可选包)。它们的组合取舍形成了具体的运行环 第 9 页 共 32页 境。 Configuration主要是对设备纵向的分类,分类依据包括存储和处理能力,其中定义了虚拟机特性和基本的类库。已经标准化的Configuration有- Connected Limited Device Configuration(CLDC)和Connected Device Configuration(CDC)。 Profile建立在Configuration基础之上,一起构成了完整的运行环境。它对设备横向分类,针对特定领域细分市场,内容主要包括特定用途的类库和API。CLDC上已经标准化的Profile有Mobile Information Device Profile ( MIDP)和Information Module Profile(IMP),而CDC上标准化的Profile有Foundation Profile(FP)、Personal Basis Profile(PBP)和Personal Profile(PP)。 可选包独立于前面两者提供附加的、模块化的和更为多样化的功能。目前标准化的可选包包括数据库访问、多媒体、蓝牙等等。 开发Java ME程序一般不需要特别的开发工具, 开发者只需要装上Java SDK 及下载免费的 Sun Java Wireless Toolkit 就可以开始编写Java ME程式,编译及测试, 此外目前主要的IDE(Eclipse 及 NetBeans)都支持 Java ME 的开发,个别的电脑开发商如 Nokia 及 Sony Ericsson 都有自己的SDK, 供开发者在开发出兼容于他们的平台的程序。 3.3程序设计思想 游戏作为人们日常生活的一个重要的娱乐项目,也带动了巨大的游戏相关产业市场的发展。游戏平台从游戏机、电视游戏,到pc游戏,到电脑游戏,中间经历了很多的技术的变革。随着新技术的发展和人们生活水平的提高,电脑开始逐渐普及,电脑以其小巧便捷,方便的特性成为人们的必备通讯工具。而基于电脑平台的电脑游戏也就拥有了巨大的市场空间,随着3g的开通和应用,电脑游戏必将迎来新的一轮游戏热潮。 游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳,所以我们在游戏中添加了漂亮的场景,设置了过关升级的功能,激发大家的娱乐激情。 从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计中 第 10 页 共 32页 在一个图片框中构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7中造型,每种造型又可以通过旋转而变化出2到4种形状,利用随机函数在一个预览窗体中提前展示形状供用户参考,然后将展示的形状复制到游戏窗体中进行摆放,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后利用递归语句对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句对分数判断,达到一定的积分就可以升级到下一个档次。 俄罗斯方块游戏设计的主要步骤为以下方面: (1)游戏界面的设计。 (2)俄罗斯方块的造型。 (3)俄罗斯方块的旋转。 (4)俄罗斯方块的运动情况(包括向左,向右和向下)。 (5)俄罗斯方块的自动消行功能。 (6)游戏级别的自由选择。 (7)游戏速度的自由选择。 (8)游戏得分的计算。 (9)游戏菜单选项的设计及功能实现。 3.4主要实现的功能 我们开发的俄罗斯方块游戏,主要实现了以下几种功能: 1.可以灵活控制方块在图形框中运动。 2.游戏过程中方块可以自由旋转。 3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。 4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游戏等级为初始游戏时在基层随机生成一定行数的无规律方块,生成的行数由你来选择,每行至少产生5个以上的无规律方块,这样增加了游戏难度,对于游戏 第 11 页 共 32页 高手来说,无疑不是一个新的挑战。 5.游戏的得分支持积分,并且按照公式: 得分 = 原来分数+ 100 * (2 ^ 同时消除的行数-1),这样,你同一时间消除的行数越多,你的得分也就越高,当游戏积分到了一定时可以自动升级,这个升级指速度升级。 6.游戏中提供了一个漂亮的场景,给你带来无限激情。 第 12 页 共 32页 4 开发背景 随着通信技术的发展和电脑的普及,电脑游戏的开发技术越来越为人们所关注。以J2SE为开发平台,利用Java提供强大工具,不但可以在电脑上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种电脑游戏。 JAVA自从20世纪90年代早期诞生以来,以其强大的功能迅速为广大程序员们所接受。从2001年开始,日本的国内的移动电话开始搭载Java。使用本来就是一种程序语言的Java之后,就可以在移动电话上完成以往静态的HTML内容所无法达成的计算处理、数据存储、与服务器的通信等等。如果能利用Java上其他丰富功能,那么就可以实现更多的功能。随着电脑游戏的发展,国内外各大开发商纷纷运用Java进行电脑游戏开发。J2SE作为一种基于Java的便携设备开发平台,在各大电脑开发公司得到了广泛应用。 小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,方便人们娱乐的目的。另外也通过本程序将几年来所学的专业知识和其他方面的知识融入到实际应用中。 通过此次课题的设计,掌握如何制作一个俄罗斯方块游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。 本课题拟研究基于J2SE的电脑游戏开发技术以及其特点,开发一个俄罗斯方块游戏,具体研究内容如下: 1、电脑游戏开发以及J2SE的基本理论和J2SE类库的使用; 2、J2SE体系结构的研究; 3、J2SE API的研究; 第 13 页 共 32页 (1)应用程序的研究; (2)类库研究; (3)各事件发生器的应用。 4、开发工具的应用和开发环境的设置。 其中J2SE API的研究为重点,本课题将通过一个具体的电脑游戏--俄罗斯方块的开发来研究以上内容。 J2SE简介 现在JAVA-JAVA2 Platform大致可分为J2SE、J2EE、J2ME三类。J2SE为JAVA-JAVA2 Platform 的标准版,通常在PC上使用的JAVA。J2EE是在J2SE的API上,扩展了给企业使用EJB与Servlet等主要使用在服务器上的功能。而J2SE则是面向家电和通信工具等微小设备。 J2SE的目标是微小设备,这类设备有许多种类,在这些设备的J2SE当中,定义了CDC(Connected Device Configuration),CLDC(Connected Limited Device Configuration)这两个Configuration。 CDC是以能用在个人网关、下一代移动电话、PDA(个人数字助理)、家电设备、POS终端、车辆导航系统等上运行为前提设计出来的。CLDC,是以能使用在移动电话、PDA(个人数字助理)、家电设备、POS终端等上面为前提设计出来的。 J2SE 体系结构 配置和简表:配置定义了一个设计在一系列类似硬件上运行的Java平台的能力。J2SE的目标是家电与嵌入式设备,这类设备有很多种类,对应这些设备的J2SE当中,定义了CDC(连接设备配置)和CLDC(受限接设备配置)两个配置,配置所提供的类函数只有Java.lang, Java.io,Java..util包等J2SE等核心类的子集。CLDC是与电脑相关的,它实际是定义一个设备制造商用来实现Java运行环境的标准,第三方开发者只需要遵循这个标准。CLDC主要影响Java开发和软件发布的以下方面: 1)目标设备的特性; 2)安全模型:安全模型有两个部分,虚拟机和应用程序安全。虚拟机安全层的目的是保护下面的设备不受任何执行代码可能引起的损害。 第 14 页 共 32页 开发环境 (1)开发的硬件环境:CPU C1.7HZ/Maxor 40G/DDR 256M/CD-ROW 40X (2)开发软件:JDK1.6 目标硬件环境: 1:显示: 96*54象素,1位颜色, 大约1:1的象素比例; 2:输入: (a)单手键盘或者小键盘; (b)双手的QWERTV键盘; (c)触摸屏。 3)内存 (a)128KB非易失性内存,供MIDP组件使用; (b)8KB的非易失性内存,供应用程序生成的永久数据使用; (c)32KB的易失性内存,供Java堆使用。 本游戏的操作流程(如图4.1):用户在启动后,即进入游戏主画面,屏幕开始显示为欢迎画面。用户按下[开始]按钮后,就可以开始玩游戏。当用户想暂停时,再次按一下[开始]按钮,游戏就暂停了,在暂停的情况下再按[开始]按钮,游戏继续运行。任何时候按[退出]按钮,游戏都会终止。 第 15 页 共 32页 图4.1 在信息社会中,电脑及其他娱乐设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,电脑及其他无线设备上网络势在必行。但是传统电脑存在以下弊端: 1. 传统电脑出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部电脑。 2. 传统电脑访问互联网是通过WAP(Wireless Application Protocal),所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。 而Java技术在无线应用方面的优势非常明显: 1. 应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空大。 2. Java技术提供了一个类库,它使的应用开发商可以创建更为直觉、丰富的用户界面(GUI); 3.Java技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。Java的最大目标和特点,就是“一次编写,到处运行”的平台无关性。但是,一套标准无法适应 第 16 页 共 32页 各种不同的需求。因此,Java技术目前共有三套,分别针对不同的平台和应用。 Standard Edition(J2SE,标准版):针对桌面端PC和工作站的个人和低端商务应用。 Enterprise Edition(J2EE,企业版):针对服务器端企业级应用,支持Servlets, JSP和XML等等。 Micro Edition(J2SE,袖珍版):针对有限内存,显示和处理能力的设备,主要是消费电子和嵌入式设备领域(这实际正是Java语言设计最初的目标领域)。 图4.2 java结构 在消费电子和嵌入式设备领域,内存从几百K到几十M,从没有屏幕Web-TV,CPU从低功耗的嵌入式处理器到206MHz的RISC处理器,硬件条件的差异是相当大的。这就使得J2SE的标准需要有不同的层次和类别来适应这个复杂的领域,因此相比之下J2SE就比J2SE和J2EE的标准要复杂得多。因此,清楚的理解J2SE的体系结构的划分才能更好的理解和掌握J2SE。 J2SE的3层体系结构依照各种设备的资源特性,将J2SE技术构架分为简表(Profile)、配置(Configuration)和Java Virtual Machine(JVM)3层,然后再进一步细分,这使J2SE能够在每一类设备的限制下工作,而同时提供最低限度的Java语言功能性。 关于J2SE的体系结构,可以这样来进行总结:Configuration的分类是根据计算能力的不同来划分的,同类设备的计算能力相近。Configuration是一个规范,定义了这类设备的共同Java平台,定义与设备无关的Java虚拟机和核心 第 17 页 共 32页 库,是平台相容性的基础。Profile的分类是根据设备功能划分的,同类功能的设备其他各种硬件条件和需求也相近。Profile是一组API,在某Configuration的基础上扩展了针对设备特定功能的API,使得标准能够完全适应特殊的设备,彻底发挥设备的功能。 J2SE体系的一般结构是:由Configuration定义的Java虚拟机运行于设备的宿主操作系统之上,构成整个平台的基础。Configuration提供了基本的语言特性,Profile提供针对设备的特殊功能API和扩展类库。应用程序的运行环境需要一个Configuration和至少一个Profile,多个Profile可以共存,也可以叠加。 MIDP(Mobile Information Device Profile)定义了针对移动信息处理设备(主要指智能电脑和一部分具有无线通信功能的PDA)的图形界面,输入和时间处理,持久性存储,无线电话网络连接之上的一些消息处理(例如短消息),安全等等API,并且考虑到了移动信息设备的屏幕和内存限制。类似于J2SE中的Applet框架,MIDP提供了基于javax.microedition.midlet 包的MIDlet应用程序框架。 因为MIDP提出的比较早,目前重要的智能电脑和PDA操作系统上都已有了相应的实现,而且应用的也比较广泛。 针对消费电子和嵌入式设备领域丰富多样的设备和彼此相差极大的计算能力及各种硬件条件,J2SE首先根据最基本的一些特征把它们划分为两类。 具备间断网络通讯能力的个人移动信息设备:如电脑,双向呼机,PDA(Personal Digital Assistant,个人数字助理,也称掌上电脑)等等。 有固定的不间断网络连接的共享连接信息设备:如置顶盒(set-top boxes),Web-TV,支持Internet的有屏幕电话,汽车娱乐,导航系统等等。 Sun对J2SE 有一个很好的概括:J2SE技术有两个设计中心——手持的设备,和可以插到墙上插座的设备。第一类设备往往是个人化的,移动的,使用电池,体积和功耗都有限制,因此功能和计算能力有限。第二类设备一般是固定的,因此体积没有太大限制。由于固定,可以有持续电源供应,因此功耗没有太大问题,计算能力相对充裕。 计算能力是这两类设备的主要区别,对其上可能的应用和环境显然有着本质 第 18 页 共 32页 影响,不同类别的设备不可能采用同样的Java平台,必须分别定义。针对这两大类设备的平台规范就是Configuration。第一类设备的Configuration称为CLDC(Connected, Limited Device Configuration),第二类称为CDC(Connected Device Configuration)。 属于同一类的设备计算能力是相似的,但是其他功能和条件还有非常大的区别。作为Java平台必须保证相容性,这就必须舍弃所有的设备特殊性。因此,Configuration就是支持一组通用设备的最小Java平台,作为这些设备的最小公分母来保证不同设备间的平台相容性。这里的Java平台主要是指Java虚拟机(JVM)和核心库。 在Configuration中舍弃了设备的特殊性来保证Java平台的相容性,但是仅仅有Configuration显然是不够的,特殊的具体设备其独有的功能和硬件条件都没有得到支持。为此,在Configuration的基础上,根据设备具体功能再进行一次划分,比如智能电脑,PDA等等。功能的划分也就是其他硬件条件的划分,比如屏幕大小,内存,计算能力,电力供应等等都是从属于功能的,因此同功能的设备的硬件条件都是非常相似的。Profile(译为简表或者简档)就是针对每一类功能设备的特殊性定义的与设备特性相关的API,建筑于Configuration之上,作为Configuration的扩展和补充。例如MIDP(Mobile Information Device Profile,移动信息设备Profile)就定义了关于移动信息设备(主要指智能电脑和一部分具有无线通信功能的PDA)的图形界面,输入和时间处理,持久性存储,短消息等等的API,并且考虑到了移动信息设备的屏幕和内存限制。而正在制定中的PDA Profile则定义了针对PDA的API,其屏幕,内存条件都要大于MIDP,但是网络方面的要求则显然和电脑有所不同。如下图所示,同属于Configuration的设备根据功能不同由不同的Profile来支持,Profile体现设备的特殊性,但是都建筑在一个共同的基础Configuration平台之上。 J2SE已经广泛的应用在了很多的电脑设备上,很多的电脑设备都实现MIDP的参考实现,但不同的电脑设备还是有一些不同的地方,比如应用与电脑上的Profile就不适合在PDA的Profile。有一些系统,比如Symbian实现了CLDC和MIDP,作为智能电脑的操作系统,是理想的MIDP应用平台。其他的系统,如在Compaq的iPaq上已经实现了CDC,IBM的WebSphere Micro Environment在 第 19 页 共 32页 Pocket PC上实现了CLDC,CDC和MIDP。可见,在硬件条件较好的PDA上都可以实现CDC的标准。由于这些主要操作系统平台都是开放的,基本可以相信,主要的移动信息设备操作系统都将一直提供J2SE的支持,但是具体支持哪个标准则并不一定死板地按照CLDC和CDC的最初定义,和设备的硬件条件和厂商的选择有关,或者可能同时实现多个标准。所以说J2SE的还是在快速的发展的。 第 20 页 共 32页 5 游戏的实现 5.1游戏设计的具体实现 在我们两个人共同努力下,此次设计,终于能够圆满完成。由于时间的紧促,在设计中,也许会有一些考虑不周之处,但其功能已经能够满足大多用户的需求,相信假以时日,一定能做出一个更经典,更完美的俄罗斯方块游戏,下面我们将对每一步的具体如何实现展示给大家。 5.1.1游戏界面的设计实现 俄罗斯方块游戏主要由两个界面构成,登陆界面和开始游戏界面。 登陆界面和开始游戏界面: 图5.1.1.1 图5.1.1.2 第 21 页 共 32页 5.1.2俄罗斯方块的造型 相信朋友们都玩过俄罗斯方块,对这个游戏的玩法和方块形状都比较熟悉。我们这个游戏只选择了最基本的7中造型,包括长条型,正方型,正S型,反S型,正7型,反7型,T型。如果需要我们可以添加更多的造型。将游戏界面的游戏区图片框分割成10*20的小块,每个小块放置一个jbutton控件,预览区图片框按同样比例分割成4*4的小块,同样有jbutton控件构成,我们可以把预览图片框看作是从游戏区图片框中选取的一个部分,游戏区的小方块编号和预览区编号如下图: 3 4 5 6 0 1 2 3 4 5 6 7 8 9 13 14 15 16 „ „ „ „ „ „ „ „ „ „ 23 24 25 26 „ „ „ „ „ „ „ „ „ „ 33 34 35 36 90 91 92 93 94 95 96 97 98 99 图5.1.2.1游戏区编号 图5.1.2.2 预览区编号 利用Select将方块的7中造型列出,比如长条型的设计,在预览区中分别有3.4.5.6和5.15.25.35四个方块构成两中形态,用数组为: m(0) = 3: m(1) = 4: m(2) = 5: m(3) = 6: situation2 = 0 m(0) = 5: m(1) = 15: m(2) = 25: m(3) = 35: situation2 = 1 将它的形状编号为0和1,在后面方便调用,其他的方块造型同样的方法。 5.1.3俄罗斯方块的旋转 俄罗斯方块的旋转主要将方块的位置加以变换得到的,例如上述范例,长条型有两中样式,根据小方块的编号变动来实现整个造型的旋转,比如: public final static int[][] STYLES = {// 共28种状态 {0x0f00, 0x4444, 0x0f00, 0x4444}, // 长条型的四种状态 {0x04e0, 0x0464, 0x00e4, 0x04c4}, // 'T'型的四种状态 {0x4620, 0x6c00, 0x4620, 0x6c00}, // 反'Z'型的四种状态 {0x2640, 0xc600, 0x2640, 0xc600}, // 'Z'型的四种状态 {0x6220, 0x1700, 0x2230, 0x0740}, // '7'型的四种状态 {0x6440, 0x0e20, 0x44c0, 0x8e00}, // 反'7'型的四种状态 第 22 页 共 32页 {0x0660, 0x0660, 0x0660, 0x0660}, // 方块的四种状态 }; 方块的造型在旋转的时候存在一个公式,当然首先要判断是否满足旋转的要求,以上是一个长条型由横着变成竖立状态的旋转,我们以它的造型中的第三个小方块n(3)为中心旋转,这样,在开始运动的时候,长条形要发生旋转最少要运动到第三行,才能由横着变成竖立状态,游戏区图形框中第三行的第一个方块的编号为20,所以长条造型的第一个小方块的编号n(0)必须要大于20。同样,长条型方块在下落到底部的时候也有限制。如果长条下落到最后一行也将无法由横着变成竖立状态。 5.1.4如何实现方块的运动和自动消除满行的方块 我们的这个俄罗斯方块游戏主要是利用jbutton控件的visible属性完成效果的,其实在游戏区图形框可以看成是由许多的jbutton小方块组成,方块运动的过程就是造型里方块显示或者隐藏,就像现在的霓虹灯效果一样,由时钟控件控制visible属性改变的速度,上一层的消失,下一层的显示,这样,从视觉效果可以看到方块的下落运动效果。 方块在下落的过程中会自动判断每一行方块的visible属性,如果全部为true时,就会将这一行小方块的visible属性全部变成false,在将上面的小方块向下移动,利用for语句进行循环判断,将所有这样情况的行改变小方块visible属性。当有多行同时出现这样情况时使用递归调用,实现连续消行。具体程序代码如下: public RussiaBlock(int y,int x,int level,int style) { this.y = y; this.x = x; this.level = level; moving = true; pausing = false; this.style = style; 第 23 页 共 32页 canvas = GameCanvas.getCanvasInstance(); boxes = new RussiaBox[ROWS][COLS]; int key = 0x8000; for(int i = 0; i < boxes.length; i++) for(int j = 0; j < boxes[i].length; j++) { boolean isColor = ( (style & key) != 0 ); boxes[i][j] = new RussiaBox(isColor); key >>= 1; } display(); } 5.1.5游戏速度和游戏级别自由选择 游戏速度的自由选择无非就是改变时钟控件的频率,我们在菜单中添加了选 择速度的功能,还有添加了考验功能,将欲览窗中的方块造型隐藏,给玩家提高 了难度,如果你不愿意接受考验也可以点击显示还原成原来状态。 游戏级别的自由选择是让用户选择游戏开始时候,游戏区底部出现一定行数 的随机方块,同样给玩家增加了难度,功能代码如下: public void run() { while(moving) { try { sleep( BETWEEN_LEVELS_TIME * (RussiaBlocksGame.MAX_LEVEL - level + LEVEL_FLATNESS_GENE) ); if(!pausing) moving = ( moveTo(y + 1,x) && moving ); 第 24 页 共 32页 }catch(InterruptedException e) { e.printStackTrace(); } } }可以根据你选择的难度系数在底层的每一行随机产生超过半数(即5个以上)以上的小方块,这样适合喜欢高难度的玩家。 5.1.6游戏得分的计算和游戏菜单的编辑 游戏得分的计算主要是根据消除的行数来决定的,当然每一次同时消除的行数不一样,每一行的得分也不一样,如果你每次消除的行数为1,则最后得分是100分,如果同时消除2行,则最后得分是300分,同时消除3行,得分为700分,同时消除4行,得分为1500分,这由公式:得分 = 原来分数+ 100 * (2 ^ 同时消除的行数-1)。 游戏的编辑,读者可以参照下面的功能介绍。 5.2 游戏功能的介绍 文件------开始F1:开始游戏。 继续F2:继续游戏。 暂停F3:暂时停止游戏,点击继续的时候可以继续游戏。 退出Ctrl+Q:退出游戏。 设置------选择游戏级别。 选择游戏速度。 考验------显示F5:显示欲览区方块。 隐藏F6:隐藏欲览区方块。 帮助------操作提示以及版本信息和作者资料。 用户界面具体如图: 第 25 页 共 32页 图5.2.1 游戏界面 图5.2.2 古典风格界面 第 26 页 共 32页 图5.2.3 玩家英雄榜 第 27 页 共 32页 6 系统测试 6.1 游戏界面菜单选项的功能测试 (1) “控制”菜单测试 ?点击“游戏”,“开始” 输出:游戏开始 结果:正常 ?点击“游戏”,“结束” 输出:弹出游戏结束提示框 结果:正常 (2) “查看”菜单测试 ?点击“查看”,“分数” 输出:在游戏面板中间跳出分数显示框 结果:正常 ?点击“查看”,“级别” 输出:在游戏面板中间跳出级别显示框 结果:正常 (3) “变换”菜单测试 ?点击“变换”,“改变方块” 输出:在游戏面板中显示随机产生的某种方块 结果:正常 6.2 按键事件的功能测试 (1) 方块移动测试 游戏过程中,点击“左、右、下”方向键 输出:方块正常移动,不会移出边界 结果:正常 (2) 方块反转测试 游戏过程中,点击向上方向键 输出:方块无边界和障碍物阻挡的情况下可反转 第 28 页 共 32页 结果:正常 6.3方块堆砌与消行测试 (1) 当方块下落到最底面或与障碍物接触时 输出:方块成功堆砌在底部 结果:正常 (2) 当出现满行现象时 输出:所有满行被消除,方块依次下移 结果:正常 6.4 测试结果分析 经测试,基本实习了本游戏的主要功能,不过仍存在一些错误和缺陷在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。 第 29 页 共 32页 7 总结 经过这段时间的设计和开发,俄罗斯方块游戏已经完成。其功能基本符合用户需求,能够完成游戏的控制,方块的变换以及消层等功能。并提供游戏设置,对于一些技术性比较过硬的玩家,可以调游戏级别、以及游戏速度,使得玩家能够充分的发挥竞技游戏的特色,可以不断的挑战自我,挑战极限。 但是由于第一次做,加之准备时间不够,所以该游戏还有许多不尽如人意的地方,比如方块类型太少,退出游戏不能存储进度等多方面问题。这些都有待进一步改善,在游戏中还可以更换背景音乐,以适合不同的玩家,在每通过一关可以给玩家播放一段flash,吸引玩家去挑战极限,不断提高玩家的兴趣,相信在以后的制作过程中我们将给大家带来一个更新功能更全面的游戏。 这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。 最后,我要特别感谢我的指导老师贾美丽老师、张光胜老师。是他们在我毕业设计时给了我们巨大的帮助与鼓励,使我能够顺利完成毕业设计,在此表示衷心的感激。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。她无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢她耐心的辅导。 第 30 页 共 32页 参 考 文 献 [1] Martin J.Wells.J2SE游戏编程[M].北京:清华大学出版社.2005.3 [2]米川英树.电脑游戏程序设计[M].北京:中国铁道出版社.2005 [3]孙淑敏.Java2游戏开发北京[M].北京:清华大学出版社.2005 [4] 张小玮.J2SE无线应用开发 [M]. 北京:清华大学出版社.2005 [5]张白一.面向对象程序设计——Java[M].西安:西安电子科技大学出版社.2002.8 [6]史斌星.Java基础编程贯通教材 [M]. 北京:清华大学出版社.2005 [7]杨绍方.Java 程序基础设计 [M]. 北京:科学出版社.2005 [8]朱喜福.Java程序设计 [M]. 北京:清华大学出版社.2004.7 [9] Elliotte Rusty HaroldJ..Java网络编程[M].北京:中国电力出版社.2001.1 [10]马海军.Java编程原理与实践. [M].北京:清华大学出版社.2005 第 31 页 共 32页 致谢 第 32 页 共 32页
本文档为【JavaGui开发俄罗斯方块游戏毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_511210
暂无简介~
格式:doc
大小:165KB
软件:Word
页数:0
分类:工学
上传时间:2017-09-30
浏览量:25