JAVA打地鼠游戏设计毕业论文_第1页
JAVA打地鼠游戏设计毕业论文_第2页
JAVA打地鼠游戏设计毕业论文_第3页
JAVA打地鼠游戏设计毕业论文_第4页
JAVA打地鼠游戏设计毕业论文_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

打地鼠游戏摘要:近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。JBuilder是Borland公司用于快速开发Java应用的一款优秀的集成开发环境,它以其友好的开发界面、强大的组件支持等优点,得到广大程序员的接受和认可。J2SE称为Java标准版或Java平台。J2SE提供了标准的SDK开发平台。利用该平台可以开发Java桌面应用程序和低端的服务器应用程序。也可以开发JavaApplet程序。它实际上是一系列规范的集合,由JCP组织制定相关的JavaSpecificationRequest(JSR)并发布。本游戏是使用eclipse编写的打地鼠游戏,本游戏是实现地鼠的不断闪现和敲击,根据玩家的书平来计算出成绩。本软件接受了娱乐游戏的特性,用相关技术及本程序的分析和功能的具体实现,游戏界面美观,操作简单,是广大游戏的爱好者都喜欢的一款游戏。关键字:Eclipse;打地鼠;Java

前言人类进入21世纪,全球一体化,互联网就起到重要的作用,而且随着互联网的不断发展,信息技术逐渐发展壮大,将成为网络经济的核心。其中计算机、网络通信的发展最为迅速。在现今电子信息高速发展的时代,游戏已经深入到人们的日常生活当中,成为老少皆宜的娱乐方式。Java自问世以来,以其得天独厚的优势,在IT业界掀起了研究、开发它的浪潮,显示了“鹏程万里”的美好前景。作为一种与底层硬件无关的、“编写一次,到处运行”的高级语言和计算平台,Java天生就具有将网络上的各个平台连成一体的能力,真正实现了“网络就是计算机”的理念。以Java为代表的网络的成长,改变了我们的联系方式、生活方式、学习方式和经营方式。它的来到使我们目睹了一场类似印刷术的重大变革。毫无疑问,它将影响人类社会的发展,这就是:Java加速人类进入网络时代!Java是当今IT产业和人类文明的创新和希望!

目录1、设计内容 、设计内容概要设计的主要目的是,将游戏的需求转化为游戏的数据结构和系统结构。通过制定相应文档和规范,以求在开发过程中指导开发人员的进行开发。并且规定好每个模块的功能和作用。打地鼠游戏的设计内容:首先设计几个洞,让洞中随机冒出地鼠,通过鼠标控制锤子,锤子与地鼠接触,则加分,否则不加分,在规定的时间内,如果分值够了,就过关了,否则失败重来。1.1设计目的与要求(1)实验目的:通过编写调试“打地鼠游戏”程序,分析了解“打地鼠游戏”的功能实现过程,掌握游戏设计的有关知识。(2)实验要求:按照实验教程的要求完成“打地鼠游戏”程序的编程和调试工作。1.2Java语言的发展Java自正式问世以来已经历了四年的历程,时间虽短,发展极快。一年一度在美国旧金山召开的世界JavaOne语言开发者大会(JavaOneDeveloperConference)盛况空前正说明了这一点。四年中每年的JavaOne大会,既是了解Java最新技术动态、应用成果和下一步发展趋势的最好场所,又是推动下一年Java快速发展的重要动力。首届JavaOne大会于1996年召开,各届简况如下:1996年5月29-31日,第一届,出席会议者6500余人,来自工业界的超过一半。有人评价说:“这是近年计算机界最光辉的一次盛会”。工业界相当看好Java语言,认为它的使用将会引起一场软件革命:从软件的设计风格、设计方法、设计目标到设计过程,都会产生彻底的变革,“甚至会改变此星球的生活方式”。1997年,第二届,出席会议者10000人。Java的追随者不断增加,应用开发迅速起步。1998年3月24-27日,第三届,出席会议者14000余人(注册人数),注册门票售价1195美元,否则1395美元,即使如此,仍有不少人不惜工本,挤入会场。本次会议除了软件巨头微软未参加会议外,几乎所有的计算机公司都参加了。展厅内设300多个展台,先后举行了90场专题讨论会,每场参加的人数从千人至五六千人不等。会议的主题是:通过Java的培训来带动Java软件的开发和技术研究,从而发展生产力,获取高额利润,提高生活质量,推动信息产业的进步。会议展出的内容大致如下:Java开发工具软件,如:JMF、JDK、SymantecVisualCafe、JavaDynamicManagementKit、JFC、JNDI、JavaStudio等;企业信息管理解决方案软件,如:EJB(EnterpriseJavaBeans);基于Java技术的信息家电,如:机顶盒、Java电话等;个人信息综合服务(Java戒指)、社会信息综合查询亭(Kiosk);电子商务软件、智能卡、JavaCardAPI等;网络计算环境下的Java服务器软件、远程方法调用(RMI)、基于Java技术的移动计算设备;JMS(JavaMessageService)用于出版、票据订阅的软件;JOS(JavaOS)、基于Java技术的NC和JavaStation。1999年6月15-18日,第四届,出席会议者达20000人,300多家厂商参展,举办400多场技术讲座,555名演讲者慷慨陈词,精彩纷呈。这次大会的主要特点是:Java框架结构被梳理清晰。本次JavaOne大会上,Sun公司的一个重大举措就是公布了Java平台的最新架构。重新定义的Java平台以Java2为核心,由面向企业和服务器市场的企业版Java2(J2EE)、面向传统PC客户机市场的标准版Java2(J2SE)和面向信息电器等后PC终端设备市场的Micro版Java2(J2ME)三大部分组成。其中,J2EE包括EnterpriseJavaBeans(EJB)、JavaServerPages&JavaServlets、JavaMailAPI和JavaMassageService组成。而J2ME则是原有的PersonalJava、EmbeddedJava、JavaCard以及刚刚推出的Kjava组成。虽然新框架结构中的内容都是已有的,但这样重新定义和组合,使得Java平台的概念简单化,从而变得易于理解,更适合于进行市场推广。2)重点放在企业平台随着Internet的飞速发展,企业计算模式正摒弃C/S结构而采用Web-Browser结构,此即瘦客户端/胖服务器、大容量数据库的3层或N层体系结构。由于Java的特点,使得它在开发服务器端的应用程序方面有着得天独厚的优势,面向服务器端的J2EE为当今逐渐流行的N层体系结构提供了一个标准的Java计算平台:界面一致、工具简易、丰富、Web页面互联便捷,从而能大大加速和简化各种应用系统的开发。3)加速后PC时代的进程计算机的发展创造了Internet,但是计算机现在却不是访问Internet的唯一方式。正在出现的信息化、智能化的消费类电子产品打破了PC作为信息终端的垄断地位,成为人类进入Internet的新门户。信息终端的多元化预示着所谓后PC(post-PC)时代的到来。消费类的信息终端量大面广,是典型的瘦客户机,其本身的资源和能力不能与PC相比,但必须更加智能化,并对服务器端的管理提出了更高的要求。而Java平台恰恰满足了这种要求。本次大会推出的Kjava虚拟机能运行在16以上的微处理器上,占用内存少,人们可以随心所欲,在资源有限的设备上方便地开发出各种各样的应用,直接运行在不同的消费类或其它电子设备上;而Jini的出现为Java网络连接提供了公共标准,使得任何Java设备都可以连入网络中被自动识别,并可充分利用网络上已有的各种资源。大力推进Jini的发展是Sun公司加速后PC时代进程的一项重要策略。4)应用系统异彩纷呈与上届大会一样,展出内容有:应用工具、应用系统、信息家电等。特别在实时系统开发方面,以IBM为首开发出了应用于工业实时环境的Java嵌入系统,展现出Java在工业领域的广阔应用前景。Java语言的出现和发展,得到了IT业界的青睐,它像一面大旗,凝聚了世界众多的厂商与Sun公司一道,结成了对抗微软垄断的联盟。许多知名厂商纷纷购买Java许可证,目前已有90多万个软件开发商加入了Java阵营,1亿个Java最终用户,几千种Java应用软件产品,1500余种Java书籍(自Java问世4年来,平均每天出版一本)。这真是IT业界的盛事!IBM公司提出“高举Java大旗,全力以赴”的口号,它在全世界的11个国家有28个实验室,集聚了2500余名技术人员,芯片巨人Intel提出“抓住时机,占领Java阵地”!决心使Intel芯片系统成为开发Java应用运行的最佳平台;Novell则宣称“Java是Novell的未来,未来是服务器端Java的市场”;作为Java发明者的Sun公司,坚持“保卫Java大旗,发展Java之路”的方针。此外,HP、Oracle、Apple、Sybase、Netscape、Informix、3Com、Motorola等公司均是Sun的坚强同盟。在我国,Java的引进与开发起步早,发展水平基本与世界同步。目前,Sun公司已在中国建成了由5个授权中心、20多个Internet/IntarnetJava解决方案中心和10所Java大学、若干培训中心组成的三级结构。全面推动Java在中国的普及、应用、研究、开发,培养了数以十万计的Java开发人员。此外,Sun还牵头成立了中外软件厂商的开发联盟。在中国,Java的开发可以说是“人才济济,成果累累”。如清华大学王克宏教授带领的课题组面向全国,自96年开始举办了多期Java培训班和讲座,开设了数期本科生、研究生Java课程,出版了“Java系列丛书”10余册,承担了国家“九五”攻关项目“基于Java技术的交互式远程教学系统”,并与日本就Java开发进行了国际合作,成绩斐然;东大阿派下属的宝钢东软软件技术研究中心是国内是首屈一指的Java研发骨干企业,该中心从95年起就开始了Java的研发,目前,已掌握了PersonalJava的核心移植技术,并成功地将JVM移植到汽车导航平台。此外,他们还开发出支持Jini协议的即插即用网络打印机软件,以及一套Jini信息家电网络的可视化演示环境,完成了基于JavaBeans的组件化软件开发及运行支持环境等多项成果;在台湾,22家知名计算机公司成立了“Java联盟”,并在台北建立了“Java开发中心”,新竹建立了“Java语言实验室”;在香港,举行了全岛Java杯比赛,掀起了学习Java的热潮。Java的浪潮汹涌澎湃,席卷全球!

2、软件技术与特点2.1Java技术2.1.1Java嵌入技术Java发展至今日,已不仅仅是一种编程语言,实际上已形成了一门技术。其内容包括:1)Java软件包:Java语言及其编程技术、JavaOS、Java开发环境与工具、Java语言的各种软件包、数据库接口JDBC等。2)Java虚拟机及其规范3)Java嵌入技术(Java芯片)已推出的有Java戒指、Java卡等。1999年8月2日,Sun公司宣布名为MAJC的专门为Java语言设计的的芯片优化研制成功,欲与Intel试比高低。该芯片在设计时采用了模块式高性能计算引擎,实质为一种芯片级并行处理机,能以更有效的方式分解计算任务,特别适合处理多媒体数据。Sun公司希望通过MAJC芯片的发布催生出一个基于Java语言的微处理器家族,与Intel公司竞争。设想中的Java处理器将应用在从低价消费电子产品到高端因特网服务器领域。2.1.2Jini技术1999年初正式发布后,立刻得到业界的广泛支持。Jini的出现为Java网络连接提供了公共标准,使得任何Java设备都可以连入网络中被自动识别,并可充分利用网络上已有的各种资源。它把网络上的各类设备(包括消费类电子设备如移动电话、PDA、DTV、HPC、NC、游戏机、电冰箱、智能卡等等)和各种软件组合成一个单一、动态的分布式系统,使网络更易于操纵、易于管理,具有更高的可配置性。Jini将使网络具有自发性,它的出现大大扩展了“计算”和“计算机”的含义,极大地简化了网络操作,对家庭用户来说,使用网上设备即插即用,就像使用电话一样方便。Java和Jini不仅可以不依赖于Windows为代表的操作系统,而且引导着信息产业的潮流,使Sun公司能在未来的、非PC类电子产品的数字化市场中强占制高点。2.2Java语言的主要特点Java语言是一种适用于网络编程的语言,它的基本结构与C++极为相似,但却简单得多。它集成了其它一些语言的特点和优势,又避开了它们的不足之处。它的主要特点如下:2.2.1简单性Java与C++相比,不再支持运算符重载、多级继承及广泛的自动强制等易混淆和较少使用的特性,而增加了内存空间自动垃圾收集的功能,复杂特性的省略和实用功能的增加使得开发变得简单而可靠。简单化的另一个方面是Java的系统非常小,其基本解释和类支持部分只占40KB,附加的基本标准库和线程支持也只需增加175KB。因此,Java应用软件能在相当小的系统之上独立工作。2.2.2平台独立性这是Java最吸引人的地方。由于它采用先编译成中间码(字节码),然后装载与校验,再解释成不同的机器码来执行,即“Java虚拟机”的思想,“屏蔽”了具体的“平台环境”特性要求,使得只要能支持Java虚拟机,就可运行各种Java程序。2.2.3面向对象面向对象(O-O)的技术是近年来软件开发中用得最为普遍的程序设计方法,它通过把客观事物进行分类组合、参数封装、用成员变量来描述对象的性质、状态,而用方法(成员函数)来实现其行为和功能。O-O技术具有继承性、封装性、多态性等众多特点,Java在保留这些优点的基础上,又具有动态联编的特性,更能发挥出面向对象的优势。2.2.4多线程多线程机制使应用程序能并行执行,Java有一套成熟的同步原语,保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现网络上实时的交互行为。2.2.5安全性Java有建立在公共密钥技术基础上的确认技术。指示器语义的改变将使应用程序不能再去访问以前的数据结构或是私有数据,大多数病毒也就无法破坏数据。因而,用Java可以构造出无病毒、安全的系统。Java语言除上述主要特点外,还有高性能、分布性、强大性、解释性、可移植性等,此处不再赘述。

3、设计过程3.1设计方案的论证Eclipse是当今最流行的Java开发TDE之一,它是一个开发源代码、基于Java的课扩展开发平台,因为它具有良好的可扩展性。J2ME开发可以继承在Eclipse中完成,利用Eclipse界面友好的优势,提高J2ME应用程序的开发效率。Eclipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何Eclipse插件定义的扩展点都能够被其插件使用,反之,任何Eclipse插件也可以组从其他插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道他们通过扩展点提供的服务将如何被使用。Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他门能更好的控制自己的软件技术。3.2概要设计本程序工有1个Main源文件:Main:该方法负责了游戏的全部工作,主要有游戏的逻辑处理和UI的显示。该文件用到的函数如下:MyCanvas:负责游戏中用到的变量初始化工作,设置游戏的初始化状态,如线程的初始化。Paint:负责游戏界面的绘制和命令菜单的添加。CommandAction:声明执行操作的接口。有java接口或者抽象类来实现。Run:该函数主要负责处理线程的工作,游戏状态的切换和各种变量的赋值。Runnable接口:Runnable接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为run的无参数方法。此外,Runnable为非Thread子类的类提供了一种激活方式。通过实例化某个Thread实例并将自身作为运行目标,就可以运行实现Runnable的类而无需创建Thread的子类。大多数情况下,如果只想重写run()方法,而不重写其他Thread方法,那么应使用Runnable接口。3.3软件框架流程图首先,进入游戏界面,显示出游戏的图形,使得老鼠在洞中随机闪烁出现;然后单击鼠标的click事件,点击老鼠得到相应的分数,最后退出游戏。如图1所示:进入游戏界面进入游戏界面显示游戏的图形点击老鼠,得到相应的分数退出游戏使得老鼠随机闪烁单击鼠标的单击鼠标的click事件图1项目流程图3.4界面设计图经过进一步的分析设计,得到的打地鼠游戏界面图,如图2所示: privatestaticfinallongserialVersionUID=1L; privateintnum=0;//设置全局变量 privateJLabel[]mouses; privateImageIconimgMouse; privateJLabelback; privateJLabeljtf; PlayMouse(){//写一个构造器对成员变量初始化 this.setResizable(true);//是否能够手动的修改大小 this.getContentPane().setLayout(null); this.setTitle("我的打地鼠游戏"); back=newJLabel(); back.setBounds(0,-35,600,438); this.setBounds(300,100,600,438);//设置框的大小和位置以及坐标 this.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(Toolkit.getDefaultToolkit().getImage("src/com/iotek/mouse/1.png"),newPoint(3,3),"self"));//把鼠标变成锤子ImageIconicon=newImageIcon(this.getClass().getResource("3.jpg"));//加载图片调用构造器 back.setIcon(icon); imgMouse=newImageIcon(this.getClass().getResource("2.png"));//对老鼠进行初始化 mouses=newJLabel[9];//对数组进行初始化 for(inti=0;i<9;i++){//写一个for循环 mouses[i]=newJLabel(); mouses[i].setSize(imgMouse.getIconWidth(),imgMouse.getIconHeight());//设置老鼠的大小 //mouses[i].setIcon(imgMouse); mouses[i].addMouseListener(newMouseAdapter(){//通过匿名内部类添加一个监听器,可以监听到所有事件图2游戏界面图经过进一步的分析设计,得到的打地鼠游戏加分功能,如图3所示:publicvoidmouseClicked(MouseEvente){//加分功能 Objectobject=e.getSource();//点击事件源默认的是object if(objectinstanceofJLabel){//判断图片正好出现 JLabellabel=(JLabel)object; if(label.getIcon()!=null){ num++; jtf.setText("您的得分是:"+num+"分");//每次显示分数都会变化 } label.setIcon(null);//如果点完图片就消失 } }图3游戏加分图3.5软件项目核心程序本次项目中我主要负责的是运用了多线程的技术,代码如下:publicstaticvoidmain(String[]args){ PlayMoused1=newPlayMouse();//调用构造器 Threadt1=newThread(d1);//产生一个线程,让他运行起来 t1.start(); } @Override publicvoidrun(){//老鼠闪烁出现多线程 while(true){ try{ Thread.sleep(500); intindex=(int)(Math.random()*9); if(mouses[index].getIcon()==null){//图片有没有立刻被点中 mouses[index].setIcon(imgMouse);//如果没点中就有一定的反应时间 Thread.sleep(800);//反应时间,可以根据难度的不同设置不同的长度 if(mouses[index].isShowing()){//如果在反应时间仍然没有点就设置为空 mouses[index].setIcon(null); } } }catch(InterruptedExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }}3.6本次程序中学到的知识本次课程设计我从中学习到了Java的编程思想,主要学到以下内容:1、游戏编写用到的基本框架,也就是游戏引擎。2、学习到了Runable接口的使用。3、一些关键字的使用方法。4、学习到了多线程的使用方法。JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。5、继承Thread类实现多线程

继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extendThread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:public

class

MyThread

extends

Thread

{

public

void

run()

{

System.out.println("MyThread.run()");

}

}

publicclassMyThreadextendsThread{publicvoidrun(){System.out.println("MyThread.run()");}}在合适的地方启动线程如下:[java]\o"viewplain"viewplain\o"copy"copy\o"print"print\o"?"?MyThread

myThread1

=

new

MyThread();

MyThread

myThread2

=

new

MyThread();

myThread1.start();

myThread2.start();

6、实现Runnable接口方式实现多线程

如果自己的类已经extends另一个类,就无法直接extendsThread,此时,必须实现一个Runnable接口,如下:public

class

MyThread

extends

OtherClass

implements

Runnable

{

public

void

run()

{

System.out.println("MyThread.run()");

}

}

publicclassMyThreadextendsOtherClassimplementsRunnable{publicvoidrun(){System.out.println("MyThread.run()");}}为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:MyThread

myThread

=

new

MyThread();

Thread

thread

=

new

Thread(myThread);

thread.start();

总结“打地鼠”游戏的基本功能已经实现了,其中很多代码之间都是很复杂的,

温馨提示

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

评论

0/150

提交评论