版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 打地鼠游戲</b></p><p> 摘要:近年來,Java作為一種新的編程語言,以其簡單性、可移植性和平臺無關(guān)性等優(yōu)點(diǎn),得到了廣泛地應(yīng)用,特別是Java與萬維網(wǎng)的完美結(jié)合,使其成為網(wǎng)絡(luò)編程和嵌入式編程領(lǐng)域的首選編程語言。JBuilder是Borland公司用于快速開發(fā)Java應(yīng)用的一款優(yōu)秀的集成開發(fā)環(huán)境,它以其友好的開發(fā)界面、強(qiáng)大的組件支持等優(yōu)點(diǎn),得到廣大程
2、序員的接受和認(rèn)可。</p><p> J2SE稱為Java標(biāo)準(zhǔn)版或Java平臺。J2SE提供了標(biāo)準(zhǔn)的SDK開發(fā)平臺。利用該平臺可以開發(fā)Java桌面應(yīng)用程序和低端的服務(wù)器應(yīng)用程序。也可以開發(fā)JavaApplet程序。它實(shí)際上是一系列規(guī)范的集合,由JCP組織制定相關(guān)的Java Specification Request(JSR)并發(fā)布。</p><p> 本游戲是使用eclipse編寫的打
3、地鼠游戲,本游戲是實(shí)現(xiàn)地鼠的不斷閃現(xiàn)和敲擊,根據(jù)玩家的書平來計(jì)算出成績。</p><p> 本軟件接受了娛樂游戲的特性,用相關(guān)技術(shù)及本程序的分析和功能的具體實(shí)現(xiàn),游戲界面美觀,操作簡單,是廣大游戲的愛好者都喜歡的一款游戲。</p><p> 關(guān)鍵字:Eclipse ;打地鼠;Java</p><p><b> 前言</b></p&g
4、t;<p> 人類進(jìn)入21世紀(jì),全球一體化,互聯(lián)網(wǎng)就起到重要的作用,而且隨著互聯(lián)網(wǎng)的不斷發(fā)展,信息技術(shù)逐漸發(fā)展壯大,將成為網(wǎng)絡(luò)經(jīng)濟(jì)的核心。其中計(jì)算機(jī)、網(wǎng)絡(luò)通信的發(fā)展最為迅速。在現(xiàn)今電子信息高速發(fā)展的時代,游戲已經(jīng)深入到人們的日常生活當(dāng)中,成為老少皆宜的娛樂方式。</p><p> Java自問世以來,以其得天獨(dú)厚的優(yōu)勢,在IT業(yè)界掀起了研究、開發(fā)它的浪潮,顯示了“鵬程萬里”的美好前景。作為一種與
5、底層硬件無關(guān)的、“編寫一次,到處運(yùn)行”的高級語言和計(jì)算平臺,Java天生就具有將網(wǎng)絡(luò)上的各個平臺連成一體的能力,真正實(shí)現(xiàn)了“網(wǎng)絡(luò)就是計(jì)算機(jī)”的理念。以Java為代表的網(wǎng)絡(luò)的成長,改變了我們的聯(lián)系方式、生活方式、學(xué)習(xí)方式和經(jīng)營方式。它的來到使我們目睹了一場類似印刷術(shù)的重大變革。毫無疑問,它將影響人類社會的發(fā)展,這就是:Java加速人類進(jìn)入網(wǎng)絡(luò)時代!</p><p> Java是當(dāng)今IT產(chǎn)業(yè)和人類文明的創(chuàng)新和希望!
6、</p><p><b> 1、設(shè)計(jì)內(nèi)容</b></p><p> 概要設(shè)計(jì)的主要目的是,將游戲的需求轉(zhuǎn)化為游戲的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)結(jié)構(gòu)。通過制定相應(yīng)文檔和規(guī)范,以求在開發(fā)過程中指導(dǎo)開發(fā)人員的進(jìn)行開發(fā)。并且規(guī)定好每個模塊的功能和作用。</p><p> 打地鼠游戲的設(shè)計(jì)內(nèi)容:首先設(shè)計(jì)幾個洞,讓洞中隨機(jī)冒出地鼠,通過鼠標(biāo)控制錘子,錘子與地鼠接觸
7、,則加分,否則不加分,在規(guī)定的時間內(nèi),如果分值夠了,就過關(guān)了,否則失敗重來。</p><p> 1.1 設(shè)計(jì)目的與要求</p><p> ?。?)實(shí)驗(yàn)?zāi)康模和ㄟ^編寫調(diào)試“打地鼠游戲”程序,分析了解“打地鼠游戲”的功能實(shí)現(xiàn)過程,掌握游戲設(shè)計(jì)的有關(guān)知識。</p><p> ?。?)實(shí)驗(yàn)要求:按照實(shí)驗(yàn)教程的要求完成“打地鼠游戲”程序的編程和調(diào)試工作。</p>
8、;<p> 1.2 Java語言的發(fā)展</p><p> Java自正式問世以來已經(jīng)歷了四年的歷程,時間雖短,發(fā)展極快。一年一度在美國舊金山召開的世界Java One語言開發(fā)者大會(Java One Developer Conference)盛況空前正說明了這一點(diǎn)。四年中每年的Java One大會,既是了解Java最新技術(shù)動態(tài)、應(yīng)用成果和下一步發(fā)展趨勢的最好場所,又是推動下一年Java快速發(fā)展
9、的重要動力。首屆Java One大會于1996年召開,各屆簡況如下: </p><p> 1996年5月29-31日,第一屆,出席會議者6500余人,來自工業(yè)界的超過一半。有人評價說:“這是近年計(jì)算機(jī)界最光輝的一次盛會”。工業(yè)界相當(dāng)看好Java語言,認(rèn)為它的使用將會引起一場軟件革命:從軟件的設(shè)計(jì)風(fēng)格、設(shè)計(jì)方法、設(shè)計(jì)目標(biāo)到設(shè)計(jì)過程,都會產(chǎn)生徹底的變革,“甚至?xí)淖兇诵乔虻纳罘绞健薄?lt;/p><
10、;p> 1997年,第二屆,出席會議者10000人。Java的追隨者不斷增加,應(yīng)用開發(fā)迅速起步。</p><p> 1998年3月24-27日,第三屆,出席會議者14000余人(注冊人數(shù)),注冊門票售價1195美元,否則1395美元,即使如此,仍有不少人不惜工本,擠入會場。本次會議除了軟件巨頭微軟未參加會議外,幾乎所有的計(jì)算機(jī)公司都參加了。展廳內(nèi)設(shè)300多個展臺,先后舉行了90場專題討論會,每場參加的人
11、數(shù)從千人至五六千人不等。會議的主題是:通過Java的培訓(xùn)來帶動Java軟件的開發(fā)和技術(shù)研究,從而發(fā)展生產(chǎn)力,獲取高額利潤,提高生活質(zhì)量,推動信息產(chǎn)業(yè)的進(jìn)步。會議展出的內(nèi)容大致如下:</p><p> Java開發(fā)工具軟件,如:JMF、JDK、Symantec Visual Cafe、Java Dynamic Management Kit、JFC、JNDI、Java Studio 等; 企業(yè)信息管理解決方案軟件,
12、如:EJB(Enterprise JavaBeans); 基于Java技術(shù)的信息家電,如:機(jī)頂盒、Java電話等; 個人信息綜合服務(wù)(Java戒指)、社會信息綜合查詢亭(Kiosk); 電子商務(wù)軟件、智能卡、Java Card API 等; 網(wǎng)絡(luò)計(jì)算環(huán)境下的Java服務(wù)器軟件、遠(yuǎn)程方法調(diào)用(RMI)、基于Java技術(shù)的移動計(jì)算設(shè)備; </p><p> JMS(Java Message Service)用于出版
13、、票據(jù)訂閱的軟件; JOS(Java OS)、基于Java技術(shù)的NC和Java Station。</p><p> 1999年6月15-18日,第四屆,出席會議者達(dá)20000人,300多家廠商參展,舉辦400多場技術(shù)講座,555名演講者慷慨陳詞,精彩紛呈。這次大會的主要特點(diǎn)是:Java框架結(jié)構(gòu)被梳理清晰。 </p><p> 本次JavaOne大會上,Sun公司的一個重大舉措就是公布了
14、Java平臺的最新架構(gòu)。重新定義的Java平臺以Java 2為核心,由面向企業(yè)和服務(wù)器市場的企業(yè)版Java 2(J2EE)、面向傳統(tǒng)PC客戶機(jī)市場的標(biāo)準(zhǔn)版Java 2(J2SE)和面向信息電器等后PC終端設(shè)備市場的Micro版Java 2(J2ME)三大部分組成。其中,J2EE包括Enterprise JavaBeans(EJB)、Java Server Pages & Java Servlets、Java Mail API和J
15、ava Massage Service組成。而J2ME則是原有的Personal Java、EmbeddedJava、JavaCard以及剛剛推出的Kjava組成。雖然新框架結(jié)構(gòu)中的內(nèi)容都是已有的,但這樣重新定義和組合,使得Java平臺的概念簡單化,從而變得易于理解,更適合于進(jìn)行市場推廣。</p><p> 2)重點(diǎn)放在企業(yè)平臺</p><p> 隨著Internet的飛速發(fā)展,企業(yè)計(jì)
16、算模式正摒棄C/S結(jié)構(gòu)而采用Web-Browser結(jié)構(gòu),此即瘦客戶端/胖服務(wù)器、大容量數(shù)據(jù)庫的3層或N層體系結(jié)構(gòu)。由于Java的特點(diǎn),使得它在開發(fā)服務(wù)器端的應(yīng)用程序方面有著得天獨(dú)厚的優(yōu)勢,面向服務(wù)器端的J2EE為當(dāng)今逐漸流行的N層體系結(jié)構(gòu)提供了一個標(biāo)準(zhǔn)的Java計(jì)算平臺:界面一致、工具簡易、豐富、Web頁面互聯(lián)便捷,從而能大大加速和簡化各種應(yīng)用系統(tǒng)的開發(fā)。</p><p> 3) 加速后PC時代的進(jìn)程</
17、p><p> 計(jì)算機(jī)的發(fā)展創(chuàng)造了Internet,但是計(jì)算機(jī)現(xiàn)在卻不是訪問Internet的唯一方式。正在出現(xiàn)的信息化、智能化的消費(fèi)類電子產(chǎn)品打破了PC作為信息終端的壟斷地位,成為人類進(jìn)入Internet的新門戶。信息終端的多元化預(yù)示著所謂后PC(post-PC)時代的到來。消費(fèi)類的信息終端量大面廣,是典型的瘦客戶機(jī),其本身的資源和能力不能與PC相比,但必須更加智能化,并對服務(wù)器端的管理提出了更高的要求。而Java
18、平臺恰恰滿足了這種要求。本次大會推出的Kjava虛擬機(jī)能運(yùn)行在16以上的微處理器上,占用內(nèi)存少,人們可以隨心所欲,在資源有限的設(shè)備上方便地開發(fā)出各種各樣的應(yīng)用,直接運(yùn)行在不同的消費(fèi)類或其它電子設(shè)備上;而Jini的出現(xiàn)為Java網(wǎng)絡(luò)連接提供了公共標(biāo)準(zhǔn),使得任何Java設(shè)備都可以連入網(wǎng)絡(luò)中被自動識別,并可充分利用網(wǎng)絡(luò)上已有的各種資源。大力推進(jìn)Jini的發(fā)展是Sun公司加速后PC時代進(jìn)程的一項(xiàng)重要策略。</p><p>
19、; 4)應(yīng)用系統(tǒng)異彩紛呈</p><p> 與上屆大會一樣,展出內(nèi)容有:應(yīng)用工具、應(yīng)用系統(tǒng)、信息家電等。特別在實(shí)時系統(tǒng)開發(fā)方面,以IBM為首開發(fā)出了應(yīng)用于工業(yè)實(shí)時環(huán)境的Java嵌入系統(tǒng),展現(xiàn)出Java在工業(yè)領(lǐng)域的廣闊應(yīng)用前景。</p><p> Java語言的出現(xiàn)和發(fā)展,得到了IT業(yè)界的青睞,它像一面大旗,凝聚了世界眾多的廠商與Sun公司一道,結(jié)成了對抗微軟壟斷的聯(lián)盟。許多知名廠商紛
20、紛購買Java許可證,目前已有90多萬個軟件開發(fā)商加入了Java陣營,1億個Java最終用戶,幾千種Java應(yīng)用軟件產(chǎn)品,1500余種Java書籍(自Java問世4年來,平均每天出版一本)。這真是IT業(yè)界的盛事!</p><p> IBM公司提出“高舉Java大旗,全力以赴”的口號,它在全世界的11個國家有28個實(shí)驗(yàn)室,集聚了2500余名技術(shù)人員,芯片巨人Intel提出“抓住時機(jī),占領(lǐng)Java陣地”!決心使In
21、tel芯片系統(tǒng)成為開發(fā)Java應(yīng)用運(yùn)行的最佳平臺;Novell則宣稱“Java是Novell的未來,未來是服務(wù)器端Java的市場”;作為Java發(fā)明者的Sun公司,堅(jiān)持“保衛(wèi)Java大旗,發(fā)展Java之路”的方針。此外,HP、Oracle、Apple、Sybase、Netscape、Informix、3Com、Motorola等公司均是Sun的堅(jiān)強(qiáng)同盟。 </p><p> 在我國,Java的引進(jìn)與開發(fā)起步早,
22、發(fā)展水平基本與世界同步。目前,Sun公司已在中國建成了由5個授權(quán)中心、20多個Internet/Intarnet Java解決方案中心和10所Java大學(xué)、若干培訓(xùn)中心組成的三級結(jié)構(gòu)。全面推動Java在中國的普及、應(yīng)用、研究、開發(fā),培養(yǎng)了數(shù)以十萬計(jì)的Java開發(fā)人員。此外,Sun還牽頭成立了中外軟件廠商的開發(fā)聯(lián)盟。</p><p> 在中國,Java的開發(fā)可以說是“人才濟(jì)濟(jì),成果累累”。如清華大學(xué)王克宏教授帶領(lǐng)
23、的課題組面向全國,自96年開始舉辦了多期Java培訓(xùn)班和講座,開設(shè)了數(shù)期本科生、研究生Java課程,出版了“Java系列叢書”10余冊 ,承擔(dān)了國家“九五”攻關(guān)項(xiàng)目“基于Java技術(shù)的交互式遠(yuǎn)程教學(xué)系統(tǒng)”,并與日本就Java開發(fā)進(jìn)行了國際合作,成績斐然;東大阿派下屬的寶鋼東軟軟件技術(shù)研究中心是國內(nèi)是首屈一指的Java研發(fā)骨干企業(yè),該中心從95年起就開始了Java的研發(fā),目前,已掌握了Personal Java的核心移植技術(shù),并成功地將J
24、VM移植到汽車導(dǎo)航平臺。此外,他們還開發(fā)出支持Jini協(xié)議的即插即用網(wǎng)絡(luò)打印機(jī)軟件,以及一套Jini信息家電網(wǎng)絡(luò)的可視化演示環(huán)境,完成了基于JavaBeans的組件化軟件開發(fā)及運(yùn)行支持環(huán)境等多項(xiàng)成果;在臺灣,22家知名計(jì)算機(jī)公司成立了“Java聯(lián)盟”,并在臺北建立了“Java開發(fā)中心”,新竹建立了“Java語言實(shí)驗(yàn)室”;在香港,舉行了全島Java杯比賽,掀起了學(xué)習(xí)Java的熱潮 。Java的浪潮洶涌澎湃,席卷全球!</p>
25、<p><b> 2、軟件技術(shù)與特點(diǎn)</b></p><p> 2.1 Java技術(shù)</p><p> 2.1.1 Java嵌入技術(shù)</p><p> Java發(fā)展至今日,已不僅僅是一種編程語言,實(shí)際上已形成了一門技術(shù)。其內(nèi)容包括:1)Java軟件包:Java語言及其編程技術(shù)、JavaOS、Java開發(fā)環(huán)境與工具、Jav
26、a語言的各種軟件包、數(shù)據(jù)庫接口JDBC等。2)Java虛擬機(jī)及其規(guī)范3) Java嵌入技術(shù)(Java芯片)已推出的有Java戒指、Java卡等。</p><p> 1999年8月2日,Sun公司宣布名為MAJC的專門為Java語言設(shè)計(jì)的的芯片優(yōu)化研制成功,欲與Intel試比高低。該芯片在設(shè)計(jì)時采用了模塊式高性能計(jì)算引擎,實(shí)質(zhì)為一種芯片級并行處理機(jī),能以更有效的方式分解計(jì)算任務(wù),特別適合處理多媒體數(shù)據(jù)。Sun公司
27、希望通過MAJC芯片的發(fā)布催生出一個基于Java語言的微處理器家族,與Intel公司競爭。設(shè)想中的Java處理器將應(yīng)用在從低價消費(fèi)電子產(chǎn)品到高端因特網(wǎng)服務(wù)器領(lǐng)域。</p><p> 2.1.2 Jini技術(shù)</p><p> 1999年初正式發(fā)布后,立刻得到業(yè)界的廣泛支持。Jini的出現(xiàn)為Java網(wǎng)絡(luò)連接提供了公共標(biāo)準(zhǔn),使得任何Java設(shè)備都可以連入網(wǎng)絡(luò)中被自動識別,并可充分利用網(wǎng)絡(luò)
28、上已有的各種資源。它把網(wǎng)絡(luò)上的各類設(shè)備(包括消費(fèi)類電子設(shè)備如移動電話、PDA、DTV、HPC、NC、游戲機(jī)、電冰箱、智能卡等等)和各種軟件組合成一個單一、動態(tài)的分布式系統(tǒng),使網(wǎng)絡(luò)更易于操縱、易于管理,具有更高的可配置性。Jini將使網(wǎng)絡(luò)具有自發(fā)性,它的出現(xiàn)大大擴(kuò)展了“計(jì)算”和“計(jì)算機(jī)”的含義,極大地簡化了網(wǎng)絡(luò)操作,對家庭用戶來說,使用網(wǎng)上設(shè)備即插即用,就像使用電話一樣方便。Java和Jini 不僅可以不依賴于Windows為代表的操作系
29、統(tǒng),而且引導(dǎo)著信息產(chǎn)業(yè)的潮流,使Sun公司能在未來的、非PC類電子產(chǎn)品的數(shù)字化市場中強(qiáng)占制高點(diǎn)。</p><p> 2.2 Java語言的主要特點(diǎn)</p><p> Java語言是一種適用于網(wǎng)絡(luò)編程的語言,它的基本結(jié)構(gòu)與C++極為相似,但卻簡單得多。它集成了其它一些語言的特點(diǎn)和優(yōu)勢,又避開了它們的不足之處。它的主要特點(diǎn)如下:</p><p><b>
30、 2.2.1 簡單性</b></p><p> Java與C++相比,不再支持運(yùn)算符重載、多級繼承及廣泛的自動強(qiáng)制等易混淆和較少使用的特性,而增加了內(nèi)存空間自動垃圾收集的功能,復(fù)雜特性的省略和實(shí)用功能的增加使得開發(fā)變得簡單而可靠。</p><p> 簡單化的另一個方面是Java的系統(tǒng)非常小,其基本解釋和類支持部分只占40KB,附加的基本標(biāo)準(zhǔn)庫和線程支持也只需增加175KB
31、。因此,Java應(yīng)用軟件能在相當(dāng)小的系統(tǒng)之上獨(dú)立工作。</p><p> 2.2.2 平臺獨(dú)立性</p><p> 這是Java最吸引人的地方。由于它采用先編譯成中間碼(字節(jié)碼),然后裝載與校驗(yàn),再解釋成不同的機(jī)器碼來執(zhí)行,即“Java虛擬機(jī)”的思想,“屏蔽”了具體的“平臺環(huán)境”特性要求,使得只要能支持Java虛擬機(jī),就可運(yùn)行各種Java程序。</p><p>
32、 2.2.3 面向?qū)ο?lt;/p><p> 面向?qū)ο螅∣-O)的技術(shù)是近年來軟件開發(fā)中用得最為普遍的程序設(shè)計(jì)方法,它通過把客觀事物進(jìn)行分類組合、參數(shù)封裝、用成員變量來描述對象的性質(zhì)、狀態(tài),而用方法(成員函數(shù))來實(shí)現(xiàn)其行為和功能。O-O技術(shù)具有繼承性、封裝性、多態(tài)性等眾多特點(diǎn),Java在保留這些優(yōu)點(diǎn)的基礎(chǔ)上,又具有動態(tài)聯(lián)編的特性,更能發(fā)揮出面向?qū)ο蟮膬?yōu)勢。</p><p><b>
33、; 2.2.4 多線程</b></p><p> 多線程機(jī)制使應(yīng)用程序能并行執(zhí)行,Java有一套成熟的同步原語,保證了對共享數(shù)據(jù)的正確操作。通過使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機(jī)制,這樣就很容易實(shí)現(xiàn)網(wǎng)絡(luò)上實(shí)時的交互行為。</p><p><b> 2.2.5 安全性</b></p>&
34、lt;p> Java有建立在公共密鑰技術(shù)基礎(chǔ)上的確認(rèn)技術(shù)。指示器語義的改變將使應(yīng)用程序不能再去訪問以前的數(shù)據(jù)結(jié)構(gòu)或是私有數(shù)據(jù),大多數(shù)病毒也就無法破壞數(shù)據(jù)。因而,用Java可以構(gòu)造出無病毒、安全的系統(tǒng)。</p><p> Java語言除上述主要特點(diǎn)外,還有高性能、分布性、強(qiáng)大性、解釋性、可移植性等,此處不再贅述。</p><p><b> 3、設(shè)計(jì)過程</b>
35、;</p><p> 3.1 設(shè)計(jì)方案的論證</p><p> Eclipse是當(dāng)今最流行的Java開發(fā)TDE之一,它是一個開發(fā)源代碼、基于Java的課擴(kuò)展開發(fā)平臺,因?yàn)樗哂辛己玫目蓴U(kuò)展性。J2ME開發(fā)可以繼承在Eclipse中完成,利用Eclipse界面友好的優(yōu)勢,提高J2ME應(yīng)用程序的開發(fā)效率。</p><p> Eclipse框架的這種靈活性來源于其擴(kuò)
36、展點(diǎn)。它們是在XML中定義的已知接口,并充當(dāng)插件的耦合點(diǎn)。擴(kuò)展點(diǎn)的范圍包括從用在常規(guī)表述過濾器中的簡單字符串,到一個Java類的描述。任何Eclipse插件定義的擴(kuò)展點(diǎn)都能夠被其插件使用,反之,任何Eclipse插件也可以組從其他插件定義的擴(kuò)展點(diǎn)。除了解由擴(kuò)展點(diǎn)定義的接口外,插件不知道他們通過擴(kuò)展點(diǎn)提供的服務(wù)將如何被使用。</p><p> Eclipse的最大特點(diǎn)是它能接受由Java開發(fā)者自己編寫的開放源代碼
37、插件,這類似于微軟公司的Visual Studio和Sun 微系統(tǒng)公司的NetBeans平臺。Eclipse為工具開發(fā)商提供了更好的靈活性,使他門能更好的控制自己的軟件技術(shù)。</p><p><b> 3.2 概要設(shè)計(jì)</b></p><p> 本程序工有1個Main源文件:</p><p> Main:該方法負(fù)責(zé)了游戲的全部工作,主要有
38、游戲的邏輯處理和UI的顯示。</p><p> 該文件用到的函數(shù)如下:</p><p> MyCanvas:負(fù)責(zé)游戲中用到的變量初始化工作,設(shè)置游戲的初始化狀態(tài),如線程的初始化。</p><p> Paint:負(fù)責(zé)游戲界面的繪制和命令菜單的添加。</p><p> CommandAction:聲明執(zhí)行操作的接口。有java接口或者抽象
39、類來實(shí)現(xiàn)。</p><p> Run:該函數(shù)主要負(fù)責(zé)處理線程的工作,游戲狀態(tài)的切換和各種變量的賦值。</p><p> Runnable接口:Runnable 接口應(yīng)該由那些打算通過某一線程執(zhí)行其實(shí)例的類來實(shí)現(xiàn)。類必須定義一個稱為 run 的無參數(shù)方法。 此外,Runnable 為非 Thread 子類的類提供了一種激活方式。通過實(shí)例化某個 Thread 實(shí)例并將自身作為運(yùn)行目標(biāo),就可
40、以運(yùn)行實(shí)現(xiàn) Runnable 的類而無需創(chuàng)建 Thread 的子類。大多數(shù)情況下,如果只想重寫 run() 方法,而不重寫其他 Thread 方法,那么應(yīng)使用 Runnable 接口。</p><p> 3.3 軟件框架流程圖</p><p> 首先,進(jìn)入游戲界面,顯示出游戲的圖形,使得老鼠在洞中隨機(jī)閃爍出現(xiàn);然后單擊鼠標(biāo)的click事件,點(diǎn)擊老鼠得到相應(yīng)的分?jǐn)?shù),最后退出游戲。如圖1所
41、示:</p><p><b> 圖1 項(xiàng)目流程圖</b></p><p><b> 3.4 界面設(shè)計(jì)圖</b></p><p> 經(jīng)過進(jìn)一步的分析設(shè)計(jì),得到的打地鼠游戲界面圖,如圖2所示:</p><p> private static final long serialVersionUID
42、 = 1L;</p><p> private int num = 0;//設(shè)置全局變量</p><p> private JLabel[] mouses;</p><p> private ImageIcon imgMouse;</p><p> private JLabel back;</p><p>
43、private JLabel jtf;</p><p> PlayMouse(){//寫一個構(gòu)造器 對成員變量初始化</p><p> this.setResizable(true); //是否能夠手動的修改大小</p><p> this.getContentPane().setLayout(null);</p><p> this
44、.setTitle("我的打地鼠游戲");</p><p> back = new JLabel();</p><p> back.setBounds(0,-35, 600, 438);</p><p> this.setBounds(300, 100, 600, 438); //設(shè)置框的大小和位置以及坐標(biāo)</p><p
45、> this.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(Toolkit.getDefaultToolkit().getImage("src/com/iotek/mouse/1.png"), new Point(3,3), "self"));//把鼠標(biāo)變成錘子</p><p> ImageIco
46、n icon = new ImageIcon(this.getClass().getResource("3.jpg"));//加載圖片調(diào)用構(gòu)造器</p><p> back.setIcon(icon);</p><p> imgMouse = new ImageIcon(this.getClass().getResource("2.png"));
47、//對老鼠進(jìn)行初始化</p><p> mouses = new JLabel[9]; //對數(shù)組進(jìn)行初始化</p><p> for(int i=0;i<9;i++){//寫一個for循環(huán)</p><p> mouses[i] = new JLabel();</p><p> mouses[i].setSize(imgMous
48、e.getIconWidth(), imgMouse.getIconHeight());//設(shè)置老鼠的大小</p><p> //mouses[i].setIcon(imgMouse);</p><p> mouses[i].addMouseListener(new MouseAdapter() {//通過匿名內(nèi)部類添加一個監(jiān)聽器,可以監(jiān)聽到所有事件</p><p&
49、gt;<b> 圖2 游戲界面圖</b></p><p> 經(jīng)過進(jìn)一步的分析設(shè)計(jì),得到的打地鼠游戲加分功能,如圖3所示:</p><p> public void mouseClicked(MouseEvent e) {//加分功能</p><p> Object object = e.getSource();//點(diǎn)擊事件源默認(rèn)的是ob
50、ject</p><p> if(object instanceof JLabel){ //判斷圖片正好出現(xiàn)</p><p> JLabel label = (JLabel) object;</p><p> if(label.getIcon()!=null){</p><p><b> num++;</b>&l
51、t;/p><p> jtf.setText("您的得分是:"+num+ "分");//每次顯示分?jǐn)?shù)都會變化</p><p><b> }</b></p><p> label.setIcon(null); //如果點(diǎn)完圖片就消失</p><p><b> }</
52、b></p><p><b> }</b></p><p><b> 圖3 游戲加分圖</b></p><p> 3.5 軟件項(xiàng)目核心程序</p><p> 本次項(xiàng)目中我主要負(fù)責(zé)的是運(yùn)用了多線程的技術(shù),代碼如下:</p><p> public static
53、void main(String[] args) {</p><p> PlayMouse d1 = new PlayMouse();//調(diào)用構(gòu)造器</p><p> Thread t1 = new Thread(d1); //產(chǎn)生一個線程,讓他運(yùn)行起來</p><p> t1.start();</p><p><b> }
54、</b></p><p><b> @Override</b></p><p> public void run() {//老鼠閃爍出現(xiàn) 多線程</p><p> while(true){</p><p><b> try {</b></p><p>
55、Thread.sleep(500);</p><p> int index = (int) (Math.random()*9);</p><p> if(mouses[index].getIcon()==null){ //圖片有沒有立刻被點(diǎn)中</p><p> mouses[index].setIcon(imgMouse); //如果沒點(diǎn)中就有一定的反應(yīng)時間&
56、lt;/p><p> Thread.sleep(800); //反應(yīng)時間,可以根據(jù)難度的不同設(shè)置不同的長度</p><p> if(mouses[index].isShowing()){//如果在反應(yīng)時間仍然沒有點(diǎn) 就設(shè)置為空</p><p> mouses[index].setIcon(null);</p><p><b>
57、}</b></p><p><b> }</b></p><p> } catch (InterruptedException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p>
58、;<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 3.6 本次程序中學(xué)到的知識</p><p>
59、; 本次課程設(shè)計(jì)我從中學(xué)習(xí)到了Java的編程思想,主要學(xué)到以下內(nèi)容:</p><p> 1、游戲編寫用到的基本框架,也就是游戲引擎。</p><p> 2、學(xué)習(xí)到了Runable接口的使用。</p><p> 3、一些關(guān)鍵字的使用方法。</p><p> 4、學(xué)習(xí)到了多線程的使用方法。</p><p> J
60、AVA多線程實(shí)現(xiàn)方式主要有三種:繼承Thread類、實(shí)現(xiàn)Runnable接口、使用ExecutorService、Callable、Future實(shí)現(xiàn)有返回結(jié)果的多線程。其中前兩種方式線程執(zhí)行完后都沒有返回值,只有最后一種是帶返回值的。</p><p> 5、繼承Thread類實(shí)現(xiàn)多線程繼承Thread類的方法盡管被我列為一種多線程實(shí)現(xiàn)方式,但Thread本質(zhì)上也是實(shí)現(xiàn)了Runnable接口的一個實(shí)例,它代表一
61、個線程的實(shí)例,并且,啟動線程的唯一方法就是通過Thread類的start()實(shí)例方法。start()方法是一個native方法,它將啟動一個新線程,并執(zhí)行run()方法。這種方式實(shí)現(xiàn)多線程很簡單,通過自己的類直接extend Thread,并復(fù)寫run()方法,就可以啟動新線程并執(zhí)行自己定義的run()方法。例如:</p><p> public class MyThread ex
62、tends Thread { </p><p> public void run() { </p><p> System.out.println("MyThread.run()"); </p><p><b> }
63、 </b></p><p><b> } </b></p><p> public class MyThread extends Thread {</p><p> public void run() {</p><p> System.out.printl
64、n("MyThread.run()");</p><p><b> }</b></p><p><b> }</b></p><p> 在合適的地方啟動線程如下:</p><p> [java] view plaincopyprint?</p><p&
65、gt; MyThread myThread1 = new MyThread(); </p><p> MyThread myThread2 = new MyThread(); </p><p> myThread1.start(); <
66、;/p><p> myThread2.start(); </p><p> 6、實(shí)現(xiàn)Runnable接口方式實(shí)現(xiàn)多線程如果自己的類已經(jīng)extends另一個類,就無法直接extends Thread,此時,必須實(shí)現(xiàn)一個Runnable接口,如下:</p><p> public class MyThread ex
67、tends OtherClass implements Runnable { </p><p> public void run() { </p><p> System.out.println("MyThread.run()");
68、;</p><p><b> } </b></p><p><b> } </b></p><p> public class MyThread extends OtherClass implements Runnable {</p><p> p
69、ublic void run() {</p><p> System.out.println("MyThread.run()");</p><p><b> }</b></p><p><b> }</b></p><p> 為了啟動MyThread,需要首先實(shí)例化一個T
70、hread,并傳入自己的MyThread實(shí)例:</p><p> MyThread myThread = new MyThread(); </p><p> Thread thread = new Thread(myThread); </p><
71、;p> thread.start(); </p><p><b> 總結(jié)</b></p><p> “打地鼠”游戲的基本功能已經(jīng)實(shí)現(xiàn)了,其中很多代碼之間都是很復(fù)雜的,要是搞不明白就沒辦法再往下做了。通過這次游戲的設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才
72、能真正的提高自己的水平,從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到的問題,可以說是困難重重,并且還發(fā)現(xiàn)了自己的許多不足之處,對以前學(xué)過的知識理解得不夠深刻,掌握的不夠牢固,同時在這次的設(shè)計(jì)中也小小的體驗(yàn)了一下做項(xiàng)目的感受。</p><p> 我完成了這次Java課程設(shè)計(jì),不過只是我學(xué)習(xí)路上的驛站。我相信在我未來的學(xué)習(xí)中會記住從本次項(xiàng)目中學(xué)習(xí)到的東西,并將它用到未來的學(xué)習(xí)中去。</p&g
73、t;<p><b> 參考文獻(xiàn)</b></p><p> [1]夏寬理編著Java程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2008版.</p><p> [2]楊樹林,胡潔萍.Java語言最新實(shí)用案例教程[M].北京:清華大學(xué)出版社.</p><p> [3]循序漸進(jìn)Java2教程,淡文剛、于紅梅譯,人民郵電出版社.<
74、/p><p> [4]侯俊杰編著.Java程序設(shè)計(jì)教程與實(shí)訓(xùn)[M].北京:科學(xué)出版社,2005.</p><p> [5]陳昊鵬[同譯者作品].Java編程思想(第四版)[M].北京:機(jī)械工業(yè)出版社,2007.</p><p> [6]耿祥義,張躍平.Java2實(shí)用教程(第三版)[M].北京:清華大學(xué)出版社,2006.</p><p>&l
75、t;b> 致謝</b></p><p> 一番春秋一番冬夏,一場酸甜一場苦辣,不管是苦是甜,打地鼠游戲從開始游戲的構(gòu)思到最后的完成調(diào)試,經(jīng)歷了許多波折,但是我沒有放棄,反而收獲頗多。經(jīng)過一個來月的忙碌和工作,本次的畢業(yè)設(shè)計(jì)已經(jīng)完成了,作為一個??粕漠厴I(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏和業(yè)務(wù)邏輯的不熟悉,難免有許多考慮不周全和不完善的地方,但是在指導(dǎo)老師和任課老師和同學(xué)的幫助下很多困難都得以解決,所以在
76、此本人特別感謝他們對我的幫助。</p><p> 首先我要感謝我的指導(dǎo)老師**老師,感謝他們在整個畢業(yè)設(shè)計(jì)過程中的指導(dǎo),為我提示游戲設(shè)計(jì)的邏輯思路;為我提供參考書籍;為我提供技術(shù)方面的資料,而且在遇到問題的時候,總是鼓勵我去解決;尤其在論文格式的修改方面,讓我明白了要寫一個標(biāo)準(zhǔn)的論文,它的格式的重要性,哪怕就算是一個標(biāo)點(diǎn)符號都要其標(biāo)準(zhǔn)和格式要求。在設(shè)計(jì)的整個過程中從開題報(bào)告的確定到初稿的修改,以及中期的檢查,以
77、及定稿的過程中都給予了我細(xì)心的指導(dǎo)。</p><p> 其次還要特別感謝大學(xué)三年來所有的老師,為我們打下計(jì)算機(jī)專業(yè)知識的基礎(chǔ)。以前總是覺得學(xué)的課程沒有什么用處,但是當(dāng)真正的用計(jì)算機(jī)來解決實(shí)際問題的時候,才知道每門課程的重要性,甚至覺得所學(xué)習(xí)的那些課程遠(yuǎn)遠(yuǎn)不夠,所以以后還要不斷的學(xué)習(xí),也可以說要不是您們在大學(xué)三年中嚴(yán)格要求我們,現(xiàn)在要完成整個畢業(yè)設(shè)計(jì)那是根本不可能的。</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java打地鼠游戲畢業(yè)論文
- 基于java的打磚塊游戲畢業(yè)論文
- 打地鼠游戲
- 中班體育游戲《打地鼠》
- 打地鼠游戲-項(xiàng)目總結(jié).docx
- 打地鼠游戲-功能點(diǎn)描述.xlsx
- 打地鼠游戲-功能點(diǎn)描述.xlsx
- 中一班戶外游戲《打地鼠》
- 畢業(yè)設(shè)計(jì)(論文)+手機(jī)游戲開發(fā)-java畢業(yè)論文
- 俄羅斯方塊游戲java畢業(yè)論文
- 畢業(yè)論文(java游戲俄羅斯方塊)
- 基于plc的打地鼠游戲課程設(shè)計(jì)
- 畢業(yè)論文范文——java 打飛機(jī)游戲設(shè)計(jì)
- 基于Java的拼圖游戲畢業(yè)論文.docx
- 畢業(yè)論文范文——java 打飛機(jī)游戲設(shè)計(jì)
- java五子棋游戲畢業(yè)論文
- 基于java+me的手機(jī)游戲畢業(yè)論文
- java002打飛機(jī)游戲設(shè)計(jì)(程序+論文)
- 基于51單片機(jī)的打地鼠游戲設(shè)計(jì)
- 基于java的連連看游戲設(shè)計(jì)畢業(yè)論文
評論
0/150
提交評論