已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中北大学信息商务学院2015届毕业设计说明书Java版贪食蛇游戏的设计与实现摘要 “贪食蛇”游戏是一款使用Java语言开发的小游戏,它因为界面简洁,操作简单受到广大玩家的推崇。近年来Java作为一种新的高级语言,以其简单、易懂、可移植受到众多编程人员的欢迎,成为一种广泛使用的编程语言。本文基于Java环境和Eclipse开发工具,开发了一个界面美观,操作简单并且功能齐全的“贪食蛇”游戏,整个游戏分为了10个类,实现了游戏的开始、结束、暂停,通过了本游戏的开发,达到了学习Java及Java GUI,熟悉开发软件过程的目的。 本次毕业设计对“贪食蛇”游戏的整个生命周期进行了完整的描述。首先分析了本次毕业设计的可行性,然后进行了游戏的功能需求分析,最后进行了游戏的详细设计,同时为了保证程序的代码正确性以及功能的可靠性,进行了游戏程序的调试与功能测试。通过游戏的开发学习了Java程序开发的相关技术,使用Eclipse开发程序的相关流程,培养了对程序的需求分析以及程序设计的能力。摘要:贪食蛇,Java,Eclipse全套设计加扣 3012250582 The design and implementation of the game SnakeAbstractWith the Java language , the game Snake, whose interface is simple as well as easy to operate, are respected by the majority of players. Recently, as a new senior language welcomed by many programmers, Java , which is simple, easy to understand and portable , has been used widely in the field of program editing.Based on the developing tool Eclipse as well as Java language, editor has developed a Snake game with beautiful interface, easy operation and fully function, which is divided into ten categories to achieve the start, over, pause of the game. Besides, through the progress of the development of the Snake, editor is familiar with software development process and learns about Java and Java GUI at the same time.The graduation project on the Snake describes the entire progress of the game completely .1Firstly, analyzes the feasibility of this design;2Then, analyzes the games functional requirements;3Finally, finish detailed design of the game.In order to ensure the correctness of the code and reliability of functional program, editor has tested the game program and its functions. Through the development of the game Snake, editor is able to learn technologies of the Java application development and related processes of the Eclipse development programs. What s more, owing to this project, train the ability to analyze and design the program.Keyword: the game Snake,Java,Eclipse中北大学信息商务学院2015届毕业设计说明书目 录1 引言 11.1 课题背景11.2 研究的目的和意义11.3 国内外研究现状11.4 开发工具及技术 31.4.1 Java语言 31.4.2 Java平台 51.4.3 JDK工具51.4.4 Eclipse开发工具51.4.5 GUI技术简介61.5 软硬件需求71.5.1 硬件需求71.5.2 软件需求72 系统需求分析 82.1 需求分析82.2 预期目标82.3 系统的可行性分析92.3.1 技术可行性分析92.3.2 经济可行性102.3.3 操作可行性103 系统功能设计113.1 系统流程图113.2 系统结构图123.3 系统类文件123.4 蛇的移动134 系统详细设计144.1 主界面设计14第页,共页 4.2 调整背景颜色界面164.3 显示网格功能174.4 设置蛇头颜色184.5 设置蛇身颜色204.6 设置食物颜色214.7 蛇的移速调整225 系统测试235.1 测试的意义245.2 测试的过程245.3 测试的结果24结论25参考文献26致谢27第页,共页1 引言11 课题背景 现代社会中,因为快节奏的生活使人们不断的感受到身体与心理的双重疲惫,在休息之余,人们会用一些方法进行减压,而玩游戏是现代社会中使用较多的减压方法。贪食蛇游戏是一款经典的游戏,它以简洁的界面、简单的操作受到广大玩家的喜爱。贪食蛇的前身是1976年Gremlin平台推出的一款经典街机游戏Blockade,在这个游戏中两名玩家分别控制一个角色在屏幕上移动,所经过之处砌起围栏。角色只能向左、右方向90度转弯,游戏的目标就是保证让对方先撞上屏幕或者围栏,从这个游戏以后这种游戏模式就随之兴起。此类休闲类的游戏,集合了趣味性、动作性、益智性为一体,更加吸引人们来体验。12 研究的目的和意义 本次的毕业设计主要目的是为了学习Java的程序设计基础,学习使用Eclipse工具开发软件,学习软件的设计过程,从软件的可行性分析,到概要设计最后到详细设计一整套的设计流程。通过游戏的开发学习了Java程序开发的相关技术,使用Eclipse开发程序的相关流程,培养了对程序的需求分析以及程序设计的能力。 在本课题中程序的关键在于蛇的图形以及蛇的移动,应用一个小的矩形方块来表示蛇的一节身体,在操作游戏时按下“上”,“下”,“左”,“右”方向键分别可以让蛇头向着对应的方向移动,所以在按下方向键后,先要确定蛇头的方向,然后蛇身随着蛇头向相应的方向移动,在蛇吃到一个食物后再因为java的多线程机制使得前面蛇的位置与新蛇的位置差一个单位,所以就看起来蛇“长了一截”。13 国内外研究现状 贪食蛇游戏在国内外已经盛行了20多年,现在更多的玩家对它进行升级以便它有更大的趣味性与可玩性。贪食蛇游戏传入中国至今,从一个不可打破的边框到现在的随机石头,从当时的固定速度到现在的可调移速,这就要求玩家必须提高自己的反应力以及眼力。贪食蛇游戏的发展和流行与国外电子业的发展有分不开的联系,在电子业发展至今,外国一直都是这片天地的霸主,最为代表性的就是世界第一大游戏市场的美国,美国一直遵循以发行商为主的产业开发链模式,韩国号称为世界上网络游戏最为发达的国家之一,韩国的网络游戏是以其政府的正确定位以及将本国经济的发展与网络游戏紧密的联系在了一起,使得游戏业以及科技业成为了其“富国兴邦”的一大重要支柱。 Java语言是美国Sun Microsystem的James Gosling、Pratrick Naughton及Mike Sheridan等人于1991年精心设计出来的计算机编程语言,其构想在于实现使用同一种编程语言所写出来的程序可以在不同的平台上运作。这种架构对于消费性电子产品而言是具有革命性的,因为在消费性电子产品中的处理器及操作系统各不相同,要在这些平台上开发程序必须要了解各个平台的特性,以及其提供的API使用方式,分别开发不同的版本才能执行,影响应用程序的普及性。 Java是当今企业级计算和应用中相当成熟和稳定的平台,在这个领域中不可否认地占据着领导地位。不但如此,Java在学术界也获得了强有力的支持:在国外的大学中,Java已经成为多数科学研究和计算使用的首选语言;越来越多的尖端学术研究完全使用Java语言;各行业的公司都有很多的Java程序员在开发他们的项目。 Java作为软件开发的一种革命性的技术,其地位已经被确立。首先,计算机产业的许多大公司都购买了Java的许可证,包括:IBM、Apple、DEC、Adobe、HP、SiliconGraphics、Oracel、Toshiba以及最不情愿的Microsoft等。其次,众多的软件开发商都支持Java的软件产品。今天是以网络为中心的计算机时代,不支持HTML和Java,应用程序的应用范围就只能局限于相同的硬件平台。Borland公司开发的基于Java的快速应用程序开发环境Latte已在1996年中期发布,Borland公司的这一举措推动了Java进入PC机软件市场。Sun公司自己的Java开发环境JavaWorkshop已经发布。许多知名的数据库厂商都在开发CGI接口,支持HTML和Java。再有,Intranet正在成为企业信息系统最佳的解决方案,而其中Java将发挥不可替代的作用。Intranet的工作方式可以描述为不同类型的Intranet用户通过界面统一的Intranet浏览器访问位于不同环境中的Intranet服务器上的信息。这一过程在基于Java的解决方案支持下实现将使无论是开发人员还是管理人员,抑或是用户都受益无穷。 Java语言正在不断地发展和完善,Sun公司是主要的发展推动者。Sun公司开发的较为统用的编译环境有:Java Develop Kit和Java Workshop。还有许多其它公司也开发了或正在开发Java语言的编译器与集成环境。如,Borland公司的JBuilder、Microsoft公司的Visual J+等。随着Java语言的大行其道,Java开发工具也如雨后春笋般纷纷涌现。据一些权威机构的调查,国外Java开发工具已经有上百种之多。这些工具各有侧重点,也各有优势,其中以Eclipse、NetBeans、Rational Developer和JBuilder最具代表性。与日、韩等国相比,中国的基于Java的游戏市场起步比较晚,但中国有一个巨大的游戏用户群,它拥有广阔的市场前景。随着Java游戏产业发展环境的日益成熟,其发展速度将一日千里。 Java是一个受业界重视的、面向对象的语言。它支持继承性、封装、多态性、多线程、动态连接与接口。而Java之所以会赢得专业开发者如此热烈的拥护是因为:首先,Java很像C+,很容易为有经验的程序员掌握使用,但它比C+有很大的改进。Java更容易编写可移植、可重用、无错误的程序。其次,Java的交叉平台的兼容性是它迅速获得成功的主要因素。随着技术的发展,Java语言的正确性与效率都将会有更大的提高,用户用Java编程将会比用能够C+编程更加方便。 近几年,由于微处理器性能的大幅提升,加上无线通讯技术的突破,手持式移动设备开始受到大众的青睐。短短几年内,手机已经升级了几代产品,普及率逐年攀升,生产效率不断上升,产品价格比个人电脑的摩尔定律有更惊人的下调,以至手机是大多是城市居民不可缺少的一件随身设备。继短信、彩信等服务之后,中国移动提供基于Java的百宝箱业务,应用产品遍及商务应用、信息获取、英汉互译、游戏娱乐等多媒体领域。根据官方公布的统计数据,我国移动电话用户已突破3亿。Java语言原先的开发目的与市场的需求不谋而合,并且也已经成为手机应用程序开发的标准,国际大公司如Nokia、Motorola及Siemens等所设计的手机内都加入Java程序的支持,可见,Java将会成为移动设备上最热门的语言。从现在的发展情况看,事实也证明了这点。14 开发工具及技术1.4.1 Java语言 Java是Sun公司开发出来的一套编程语言,它以强大的特性受到青睐,Java语言具有简洁有效、可移植性、面向对向、健壮性以及多线程处理和较高的安全性。Java是当今企业级的计算中相当成熟的平台,在领域中具有不可否认的地位。作为软件开发中一项革命技术,首先Java像C+、C#一样可以很容易的被有经验的程序员所掌握与运用,其次因为Java的跨平台的特性使得它基本可以在任何平台进行编写与测试。平台无关性: 用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关分为两种:源代码级和目标代码级。 分布式: 分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。 Java支持 WWW 客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫做 URL 的对象,利用这个对象,你可以打开并访问具有相同 URL 地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便地实现Java 的分布式特性。 可靠性和安全性: Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java 虽然源于C+,但它消除了许多C+不可靠因素,可以防止许多编程错误。首先, Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java 提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。上述几种机制结合起来,使得Java成为安全的编程语言。 多线程: Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java 语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类 Thread ,由它负责启动、运行、终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便地写出支持多线程的应用程序,提高程序执行效率。1.4.2 Java平台 Java平台是一种全新的软件平台,它主要由两部分组成:Java VM和Java API(应用编程接口)。Java虚拟机是Java平台的核心,它可以用软件实现,也可以用硬件实现。Java虚拟机屏蔽了底层的操作系统,给所有Java程序员一个完全相同的虚拟平台。 Java API为Java小应用程序和应用软件的标准接口,是应用开发的基本框架,是开放的和可扩展的。它为各个关键领域规定了一系列的基本接口,让程序员开发Java应用。Java API包括两部分:Java基本API和Java标准扩展API。Java基本API包括了Java语言的基本部分、实用程序、I/O、网络、图形用户接口等。开发多种Java API,使Java成为更强有力的平台。除了已在JDK1.02中发表的标准API外,还开发了JDBC,用来增强Java访问众多不同数据源的能力,从此Java将以统一的接口访问35种以上不同数据源,如Foxpro、Oracle、Sybase、Informix、DB2等等。1.4.3 JDK工具 Sun公司在推出了Java语言的同时也推出了一套开发工具JDK。Sun公司提供了基于字符模式的Java工具开发包,JDK是许多Java专家最初使用的开发环境。所有的Java文件编译、调试、运行都是通过字符命令来执行操作。JDK是由一个标准类库以及一组建立及测试文档的Java实用程序组成。其核心的API是一些预定义的类库。JDK是整个Java的核心,它包括了Java运行环境,Java工具以及Java基础的类库。除了最主流的Sun公司开发的JDK,还有很多公司也组织和开发自己的JDK,比如IBM公司自己开发的JDK,还有GNU组织开发的JDK等。1.4.4 Eclipse开发工具 Eclipse是一个开放源码、基于Java的可扩展开发平台。对其本身而言,它只是一个框架和一组服务,来用于通过插件构建开发环境。Eclipse附带了一个标准的插件集,包括了JDT(Java Development Tools)。Eclipse还包括插件的开发环境PDE(Plug-in Development Environment),这些组件主要是针对希望拓展Eclipse的软件开发人员。对于Eclipse和给用户提供统一集成开发环境来说,所有的开发人员都具有一样的发挥场所。尽管Eclipse是使用Java开发出来的工具,但它不仅仅限于Java语言使用,比如还支持C+等等编程语言的插件也可以使用。Eclipse框架还可以使用作为与软件开发无关的其他应用的基础。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,始于1999年4月。IBM提供了最初的Eclipse代码基础,包括了Platform、JDT和PDE。目前由IBM牵头,围绕Eclipse项目已经发展成为一个庞大的Eclipse联盟,有150多家软件公司参与到了Eclipse项目中,其中包括Borland、Rational Software和Sybase等。1.4.5 GUI技术简介 图形用户界面(Graphical User Interface,简称 GUI)是指采用了图形方式显示计算机操作用户界面。图形用户界面是一种人和计算机通信的界面显示格式,它允许用户使用鼠标等等输入设备操纵屏幕上的图标或者菜单选项,以选择命令、启动程序、调用文件或者执行其它一些日常任务。与通过键盘输入文本或者字符命令来完成例行任务字符界面相比,图形用户界面具有许多优点。图形用户界面由下拉菜单、窗口、对话框及其相应的控制机制组成,在各类新式应用程序中都是标准化的,即相同操作总是用同样的方式来完成,在图形用户界面,用户看到以及操作的都是图形对象,应用的都是计算机图形学的技术。 GUI 即人机交互图形化用户界面设计。纵观国际产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已经意识到 GUI 在产品方面所产生的强大增值功能,以及所带动的巨大市场价值,因此在公司内部设立了相关部门专门从事了 GUI 的研究与设计,同行间也成立了若干机构,以相互交流 GUI 设计理论与经验为目的。随着中国 的IT 产业,移动通讯产业、家电产业的迅猛发展,在产品人机交互界面设计水平发展上日显滞后,这就对于提高产业综合素质,提升与国际同行业者的竞争能力等方面毫无疑问起了制约的作用。15 软硬件需求1.5.1 硬件需求 CPU:Pentium(R)Dual-Core CPU E5700 内存:3G 硬盘:500G1.5.2 软件需求 操作系统:Windows 7 32 bits 开发环境:jdk1.7 开发工具:Eclipse2 系统需求分析21 需求分析 需求分析是整个设计过程的基础,也是最困难、最消耗时间的一步。它的最终结果是提供可作为设计基础的系统说明书,在项目的需求分析中主要由开发者确定对用户需求的理解程度,用户调查和市场调研等的需求分析活动的目的是帮助系统开发者加深了对用户需求的理解和对前期不明确地方进行明确化,以便日后在项目开发过程中作为开发成员的依据和借鉴。 当然一次成功的需求分析不仅仅需要系统开发者的分析同时还需要对客户需求进行分析。需求分析是一项重要的工作,也是困难的工作,该阶段要做到下面几点: 开发人员要与用户有很好地交流,需求分析是对用户业务活动进行分析,明确在用户的业务环境中软件系统应该“怎么做”。因为开发人员和用户双方都不能准确地提出系统要怎么做,所以开发人员要与用户保持很好的沟通; 不能在后期随便变更需求,需求分析是软件开发的基础,假如在该阶段发现一个错误,解决它需要一小时,再到设计、编程、测试和维护阶段解决问题,则要花2.5、5、25、100倍的时间。因此,对于大型复杂系统来说,首先要进行可行性研究。开发人员对用户的要求以及现实环境进行调查、了解,从技术、经济以及社会因素三个方面进行研究并且论证该软件项目的可行性,根据可行性的研究结果,决定项目的取舍。22 预期目标 本游戏要完成贪食蛇游戏的基本操作,玩家可以自己进行练习与操作,贪食蛇游戏的GUI界面主要包括图形框架、蛇头蛇身的设计、开始结束按钮以及背景颜色的设置,游戏的主界面简洁明朗,赏心悦目。游戏应该满足一下几点要求:(1)利用“”“”“”“”实现控制蛇移动的方向(2)能够随机的产生食物(food)(3)吃到食物蛇身会变长(4)除非碰到障碍物(ground)或者蛇身的任意一个地方,蛇死亡,游戏结束,否则游戏继续运行本软件在设计方面本着方便、简洁、娱乐性高的宗旨,在设计过程中始终明确目标,性能方面力求实现高效率,不易出错等。23 系统的可行性分析2.3.1 技术可行性分析 贪食蛇的核心算法是如何实现移动以及吃掉食物,在没有碰触到食物的时候,把当前运动方向的下一个节点放入蛇身,并且以节点颜色来绘制,然后把节点使用背景色加深,实现蛇身的移动,吃到食物后以蛇身的方向把食物节点放入蛇身并且加深背景色,实现蛇吃到食物后增长蛇身以及蛇身的移动。贪食蛇游戏是基于Java语言设计的程序,所以具有以下可行性:1.执行平台 Java程序具有跨平台的能力,所谓跨平台能力,就是指在不重新进行程序编译的前提下,程序可以在不同的平台运行,这是因为Java的可移植特性以及“字节码”和“java执行环境”之间的良好兼容于配合。 Java执行环境就是构建于操作系统上的一个虚拟机,程序设计人员只需要针对这个执行环境进行程序设计,无需理会执行环境是如何与操作系统进行沟通的。程序设计人员只需要利用Java所提供的类库与API,基本上可以达到跨平台的目的。 综上所述,在游戏设计方面,Java是一个很好的设计平台。2.语言特性与功能方面 Java程序是以C+语言的关键字语法作为基础,但是过滤了C+中的很多易犯的错误或者不常用的功能,并且采用“垃圾回收机制”来管理已经废除或者不用的对象资源,这就使得在使用Java进行编程时不会发生一些错误。 Java程序设计语言在多媒体、网络、图形方面提供了相当多的接口与方法,使得在游戏的开发方面具有很大的发展空间。 综上,在语言方面,Java也是一个很好的游戏设计语言。3.执行速度方面 不论使用什么语言,运行速度总是衡量一个游戏好与坏的标准,Java众所周知在执行速度方面并不快,也可以说算是比较慢的,因为二次编译的原因,使得Java程序在执行前都要再进行一次编译,这就拖慢了Java程序的执行速度,丧失了执行速度方面的竞争力,在后来的版本中,Sun公司不断调整编译与加载机制,努力提高程序的运行速度,并且现代计算机具有高速的运算能力,也在一定程度上弥补了Java语言本身的缺陷,在本次设计中,使用Java进行贪食蛇游戏的设计对游戏在执行速度上的影响不大。2.3.2 经济可行性 在如此快节奏的社会生活中,游戏已经成为了人们消遣以及释放压力的重要途径,贪食蛇游戏的简单操作也使得不同年龄段的人们都可以享受游戏所带来的乐趣。 经济可行性是指开发并应用此系统,应对其投资成本和未来可能取得的经济利益,权衡其得失。随着计算机软件和硬件技术的飞速发展,计算机软、硬件价格不断下降,以可行的情况下开发这样一个管理系统成本不会很高。该游戏使用已经成熟的语言与技术,系统的简洁界面与简单操作使得维护变得简单快捷,科学的开发方法使得本游戏成为一个低成本开发的游戏产品,在后续维护中,只需要简单的维护框架稳定以及细节调整,因此,本游戏在经济上具有可行性。2.3.3 操作可行性 本游戏操作简单,玩家只需要利用方向键控制蛇的移动方向,不让蛇碰触到障碍物及蛇身即可,在游戏的设计中充分的考虑到系统处理的准确性和及时性,使得游戏的运行满足玩家的需求。在设计开发过程中不断完善代码结构,力求操作简单,界面简洁,与现在主流操作系统操作方法与方式保持一致,所以在操作上是具有可行性的。3 系统功能设计31 系统流程图 本游戏的游戏流程从游戏开始起,蛇每吃到一个食物就会增长一节身体,在不碰到障碍物及自身的前提下,会永久增长,如果碰到了障碍物或者蛇身,则游戏结束,如果在途中欲进行暂停,可按暂停按钮暂停游戏,过后可按继续按钮继续游戏。系统流程图如图3.1所示。游戏主界面 点击“游戏开始”按钮,游戏开始,蛇出现在随机位置 操作: 向上移动 向下移动 向左移动 向右移动 游戏过程中想要暂停游戏稍后继续进行游戏蛇碰到障碍物或者蛇身游戏结束,单击“停止游戏”停止游戏单击“暂停游戏”暂停游戏单击“继续游戏”继续进行游戏图 3.1 系统流程图32 系统结构图 本游戏分为三个模块,分别为界面模块、控制模块和设置模块,每个模块下分别有不同的功能,具体的系统结构图如图3.2所示。贪食蛇游戏 设置模块控制模块界面模块主界面控制面板停止游戏开始游戏暂停游戏设置食物颜色设置蛇身颜色设置蛇头颜色设置背景颜色图 3.2 系统结构图33 系统类文件 本系统总共包含了10个类文件,分别提供控制、基础类、监听器、测试类以及配置类,具体的类文件如表3.1所示。 表 3.1 系统类文件序号文件名作用1Controller控制器,控制各类2Food食物类3Ground障碍物类4Snake蛇5GameOptionPanel界面配置类6MainFrame主程序入口7GameListener游戏监听器8SnakeListener蛇类动作监听器9Global配置类10GamePanel游戏的显示界面设置34 蛇的移动 在设计中,蛇每移动一步,就可以看做是蛇头像前移动了一个单位,而蛇尾去除了一个单位,蛇身依次向前移动,所以在本游戏设计中,蛇每移动依次,就在头部加上一格,去除尾巴的一个单位距离,图示如图3.3所示。去掉尾巴移动前的三段身体增加头部移动后的三段身体 图 3.34 系统详细设计 41 主界面设计 贪食蛇游戏有Java GUI设计,界面简洁易懂,操作简单,主界面如图4.1所示。图 4.1 游戏主界面核心代码:public MainFrame(Controller c) super();this.controller = c;this.setTitle(毕业设计贪食蛇游戏);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLayout(null);this.setResizableg(false);int left = 10;optionPanel = new GameOptionPanel();gamePanel = c.getGamePanel();snake = c.getSnake();ground = c.getGround();food = c.getFood();infoLabel = c.getGameInfoLabel() = null ? new JLabel() : c.getGameInfoLabel();c.setGameInfoLabel(infoLabel);optionPanel.getButton_griddingColor().addActionListener( new ActionListener() public void actionPerformed(ActionEvent arg0) Color griddingColor = JColorChooser.showDialog(MainFrame.this, 请选择网格的颜色, Color.LIGHT_GRAY);if (griddingColor != null)ground.setGriddingColor(griddingColor););optionPanel.getButton_backgroundColor().addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) Color backgroundColor = JColorChooser.showDialog(MainFrame.this, 请选择背景的颜色,new Color(0xcfcfcf);if (backgroundColor != null)gamePanel.setBackgroundColor(backgroundColor););optionPanel.getButton_foodColor().addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) Color foodColor = JColorChooser.showDialog(MainFrame.this, 请选择食物的颜色, Color.DARK_GRAY);if (foodColor != null)food.setColor(foodColor););optionPanel.getButton_headColor().addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) Color headColor = JColorChooser.showDialog(MainFrame.this, 请选择蛇头的颜色,new Color(0xFF4500);if (headColor != null) snake.setHeadColor(headColor);); optionPanel.getButton_bodyColor().addActionListener( new ActionListener() public void actionPerformed(ActionEvent arg0) Color bodyColor = JColorChooser.showDialog( MainFrame.this, 请选择蛇身体的颜色, Color.DARK_GRAY); if (bodyColor != null)snake.setBodyColor(bodyColor);); String tempStr = null; TITLE_LABEL_TEXT = (tempStr = getValue(title) = null ? 说明:: tempStr;INFO_LABEL_TEXT = (tempStr = getValue(info) = null ? n使用右侧方向键控制移动方向nnn使用pgup或pgdn控制速度nnn*中北毕设 *: tempStr;42 调整背景颜色界面 为了增加游戏的可玩性,增加了可调的背景颜色,可供玩家选择各种色系的背景,背景颜色界面如图4.2所示。图4.2 背景颜色界面核心代码:optionPanel.getButton_backgroundColor().addActionListener( new ActionListener() public void actionPerformed(ActionEvent arg0) Color backgroundColor = JColorChooser.showDialog(MainFrame.this, 请选择背景的颜色,new Color(0xcfcfcf); if (backgroundColor != null) gamePanel.setBackgroundColor(backgroundColor););43 显示网格功能 为了更加方便玩家看清蛇的运动轨迹,添加了网格可视功能,显示网格功能如图4.3所示。图4.3 显示网格核心代码: optionPanel.getButton_griddingColor().addActionListener( new ActionListener() public void actionPerformed(ActionEvent arg0) Color griddingColor = JColorChooser.showDialog( MainFrame.this, 请选择网格的颜色, Color.LIGHT_GRAY); if (griddingColor != null) ground.setGriddingColor(griddingColor););44 设置蛇头颜色为了增加游戏趣味性,添加了蛇头颜色可变,如图4.4所示图4.4 蛇头颜色设置核心代码:optionPanel.getButton_headColor().addActionListener( new ActionListener() public void actionPerformed(ActionEvent arg0) Color headColor = JColorChooser .showDialog(MainFrame.this, 请选择蛇头的颜色, new Color(0xFF4500);if (headColor != null) snake.setHeadColor(headColor););45 设置蛇身颜色 为方便蛇身与蛇头区分,增加蛇身颜色变化功能,如图4.5所示图4.5 蛇身颜色设置核心代码:optionPanel.getButton_bodyColor().addActionListener( new ActionListener() public void actionPerformed(ActionEvent arg0) Color bodyColor = JColorChooser.showDialog( MainFrame.this, 请选择蛇身体的颜色, Color.DARK_GRAY); if (bodyColor != null) snake.setBodyColor(bodyColor););46 设置食物颜色 为增加游戏趣味性,添加了食物颜色变化,以便能够适应各年龄段的玩家进行游戏,颜色设置如图4.6所示。图4.6 食物颜色设置核心代码:optionPanel.getButton_foodColor().addActionListener( new ActionListener() public void actionPerformed(ActionEvent arg0) Color foodColor = JColorChooser.showDialog(MainFrame.this, 请选择食物的颜色, Color.DARK_GRAY); if (foodColor != null)food.setColor(foodColor););47 蛇的移速调整为提高游戏的难度,增添移速调整功能,使玩家可以调整蛇的移动速度来达到设置不同难度。移速调整如图4.7所示。图4.7 移速调整核心代码:private class
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《腹部外科再次手术的指征和原则》教案
- 版齐桓晋文之事教案
- 小学语文三年级教师范本人教版五教案
- 折现统计图的复习知识教案
- 2025钠离子电池正极材料技术路线与产业化进程研究报告
- 大学生创业计划书撰写教程
- 2025量子计算技术研发竞争格局及商业前景与资本介入时机研究报告
- 2025酒类市场现状分析及未来发展趋势与投融资机会评估报告
- 小班数学公开课区分上下教案反思(2025-2026学年)
- 抛物线其标准方程教师版高二数学人教A版选择性教案
- 2025年消防设施操作员考试题库(含消防设施操作员法律法规)
- 大连农商银行招聘笔试真题2024
- 医学知识 鼻咽癌相关解剖及靶区勾画(医药参考)学习课件
- 管理者的问题分析与解决能力
- 医院护理人文关怀实践规范专家共识课件
- 【MOOC】《思想道德与法治》(东南大学)章节中国大学慕课答案
- 第六讲 科学社会学
- 中央企业人工智能应用场景案例白皮书(2024年版)-中央企业人工智能协同创新平台
- 基层应急管理
- 《柑橘类果园碳汇计量监测技术规程》
- 酒店保洁公司合同范例
评论
0/150
提交评论