JAVA課程設(shè)計打磚塊含代碼_第1頁
JAVA課程設(shè)計打磚塊含代碼_第2頁
JAVA課程設(shè)計打磚塊含代碼_第3頁
JAVA課程設(shè)計打磚塊含代碼_第4頁
JAVA課程設(shè)計打磚塊含代碼_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Java程序課程設(shè)計任務(wù)書一、主要容打破塊游戲是一種動作電子游戲的名稱。玩家操作一根螢?zāi)簧纤降摹鞍糇印?讓一顆不斷彈來彈去的“球”在撞擊作為過關(guān)目標(biāo)消去的“破塊”的途中不會落到螢?zāi)坏紫?。球碰到磚塊、棒子與底下以外的三邊會反彈,落到底下會失去一顆球,把磚塊全部消去就可以破關(guān)。二、具體要求通過圖形用戶界面(GiaphicsUseilnteiface,GUI)和線程,使用戶和程序之間可以方便地進(jìn)行交互。運用Swing組件,編寫小應(yīng)用程序游戲,加深對Java語言的理解,深入地了解圖形用戶界面的設(shè)計,更加熟練地運用編程軟件。功能要求:(1)游戲運行需鍵盤的操作;(2)游戲可統(tǒng)計分?jǐn)?shù);(3)球落到底下會失去一顆,按ENTER可重新開始。開發(fā)工具:JCieatei軟件;開發(fā)技術(shù):J2MEo三、進(jìn)度安排12月28日:課程設(shè)計選題,查找參考資料12月29日:完成打磚塊游戲程序設(shè)計分析12月30日?1月3日:完成程序代碼的編寫1月4日?1月5日:游戲測試與完善1月6日?1月7日:完成課程設(shè)計報告,準(zhǔn)備答辯四、主要參考文獻(xiàn)[1](美)??藸栔基i,饒若楠等譯.Java編程思想[J].機械工業(yè),2005[2](美)GaryJBonson著瓏雅文譯.Java編程原理網(wǎng).清華大學(xué),2004[3](美)MichaelMomson著徐剛,于健,薛雷譯.游戲編程入門[J].人民郵電,2005.9[4](美)WendyStahle[著馮寶坤,曹英譯.游戲編程中的數(shù)理應(yīng)用[J].紅旗,2005[5](美)克羅夫特(DavidWallaceQoft)著彭暉譯.Java游戲高級編程[J].清華大學(xué),2005[6](美)DavidBiackeen著邱仲潘譯.Java游戲編程[J].科學(xué),2004[7]聶慶亮編著.Java應(yīng)用開發(fā)指南[J].清華大學(xué),2010[8]耿祥義,躍平編著.Java面向?qū)ο蟪绦蛟O(shè)計[J].清華大學(xué),2010[9]紹方編著.Java編程實用技術(shù)與案例[J].清華大學(xué),2000.11[10]明日科技編著.Java編程全能詞典[J].電子工業(yè),2010摘要隨著Java語言的不斷發(fā)展和壯大,現(xiàn)在的Java已經(jīng)廣泛的應(yīng)用于各個領(lǐng)域,包括醫(yī)藥,汽車工業(yè),手機行業(yè),游戲,等等地方。Java游戲的開發(fā)為滿足人們娛樂所需而設(shè)計。本游戲為打破塊游戲,是基于Java的圖形用戶界面而開發(fā)的,可以放松心情的小游戲。游戲從系統(tǒng)操作簡便、界面友好、靈活、上手即會的基本要求出發(fā),完成整款游戲的開發(fā)。游戲更設(shè)置了暫停、計分、音樂、速度,用戶信息保存等功能,可以根據(jù)自己的愛好,挑戰(zhàn)更高難度,為用戶帶來愉悅的體驗。本課程設(shè)計報告介紹了游戲的構(gòu)想,分析,開發(fā),實現(xiàn)的過程。論述了游戲的功能開發(fā),設(shè)計構(gòu)思。給出了游戲的設(shè)計步驟,游戲系統(tǒng)關(guān)鍵的設(shè)計思想;在游戲系統(tǒng)實現(xiàn)章節(jié)給出了部分功能流程和相關(guān)代碼。關(guān)健詞:游戲,打破塊JAVA程序課程設(shè)計任務(wù)書TOC\o"1-5"\h\z\o"CurrentDocument"摘要 II目錄 III\o"CurrentDocument"第1章引言 1背景 1\o"CurrentDocument"課程設(shè)計容 1任務(wù)分工 2\o"CurrentDocument"第二章彈磚塊小游戲應(yīng)用程序 3\o"CurrentDocument"彈磚塊小游戲應(yīng)用程序概述 3\o"CurrentDocument"2J.1打磚塊小游戲系統(tǒng)任務(wù)及目的. 3\o"CurrentDocument"主要特色系統(tǒng)介紹 3\o"CurrentDocument"本章小結(jié) 4\o"CurrentDocument"第3章打磚塊游戲系統(tǒng)的設(shè)計 5\o"CurrentDocument"系統(tǒng)需求分析 5\o"CurrentDocument"系統(tǒng)開發(fā)及運行環(huán)境 5\o"CurrentDocument"系統(tǒng)主要功能要求 5打磚塊系統(tǒng)總體結(jié)構(gòu). 6\o"CurrentDocument"系統(tǒng)數(shù)據(jù)流圖 9\o"CurrentDocument"本章小結(jié) 9\o"CurrentDocument"第4章系統(tǒng)數(shù)據(jù)庫設(shè)計 10\o"CurrentDocument"4.1數(shù)據(jù)庫設(shè)計過程 10\o"CurrentDocument"4.1需求分析. 10\o"CurrentDocument"4.2功能實現(xiàn). 10\o"CurrentDocument"4.3本章小結(jié) 11\o"CurrentDocument"第5章系統(tǒng)的具體實現(xiàn) 12界面設(shè)計 12用戶登錄界面圖. 12游戲主界面. 13\o"CurrentDocument"程序設(shè)計及調(diào)試運行 195.2J自動計時. 195.2.2在JPa叔中畫圖 20\o"CurrentDocument"5.23用戶注冊登錄系統(tǒng). 21\o"CurrentDocument"5.2.4游戲結(jié)果的存儲. 22\o"CurrentDocument"5.3本章小結(jié) 23\o"CurrentDocument"第6章結(jié)束語 24致謝 25\o"CurrentDocument"參考文獻(xiàn) 26\o"CurrentDocument"附錄源代碼 26第1章引言1.1背景游戲是全球最大的娛樂經(jīng)濟項目之一,已經(jīng)被命名為“第九藝術(shù)二而由“游戲”派生出來的職業(yè),除了軟件開發(fā)外,游戲包裝宣傳推廣、攻略指導(dǎo)、網(wǎng)絡(luò)游戲管理員和職業(yè)游戲玩家等,已成為了一系列專門的崗位。面對游戲產(chǎn)業(yè)如此巨大的市場空間,國各大城市紛紛加大了這方面的人才培養(yǎng),中國的游戲人才培訓(xùn)已隨著游戲行業(yè)的總體發(fā)展開始逐步邁入了正軌。雖然說中國的游戲行業(yè)開始逐步的邁入了正軌,但是現(xiàn)今,游戲人才出現(xiàn)嚴(yán)重的瓶頸時期,高校的擴招、金融危機的侵襲直接影響著我們最關(guān)心的就業(yè)問題,但是另一方面游戲人才的缺乏乂直接制約著行業(yè)的發(fā)展,這就更加嚴(yán)格了對社會培訓(xùn)機構(gòu)的穩(wěn)定性和正規(guī)性的要求。在我國,游戲人才培養(yǎng)體系還未健全,部分開設(shè)了相關(guān)專業(yè)的高校,游由于理論和實踐的脫離無法完全滿足網(wǎng)游公司對人才的需求。所以,就中國目前的市場分析來看,加強游戲產(chǎn)業(yè)必須在多渠道人才培養(yǎng)體系上加快突破,盡快建立起多渠道人才培養(yǎng)體系,來滿足社會對游戲人才的需求。1.2課程設(shè)計容打破塊游戲是一種動作電子游戲的名稱。玩家操作一根螢?zāi)簧纤降膹棸?,讓一顆不斷彈來彈去的“球”在撞擊作為過關(guān)目標(biāo)消去的“破塊”的途中不會落到螢?zāi)坏紫?。球碰到彼塊、彈板與底下以外的三邊會反彈,落到底下會失去一顆球,把磚塊全部消去就可以破關(guān)。游戲的功能包含以下容:(1)基本的游戲操作用戶可以通過鼠標(biāo)或者鍵盤來操作彈板,盡量讓彈球不要掉下底下。開始按鈕和暫停按鈕可以控制游戲的進(jìn)行。(2)寶物獲得功能用戶在游戲過程中,可能獲得相關(guān)的寶物,可以使彈板增長一部分。(3)速度設(shè)置功能本游戲有5個速度設(shè)置,可以根據(jù)用戶的需要,調(diào)節(jié)到用戶想要的速度進(jìn)行游戲。(4)音樂設(shè)置功能用戶可以根據(jù)自己的喜好,選擇自己喜歡的音樂,或者是關(guān)掉它。(5)用戶注冊登錄功能每個用戶在游戲開始時都要輸入用戶的信息注冊,登錄,并記錄。當(dāng)用戶退出游戲以后,系統(tǒng)將記錄用戶的游戲信息。(6)計分,記時功能用戶在游戲的過程中,系統(tǒng)將記錄游戲的成績,并保存在文件中,用戶退出游戲后也可以查詢成績。3任務(wù)分工第二章彈磚塊小游戲應(yīng)用程序彈磚塊小游戲應(yīng)用程序概述此程序設(shè)計是一個小游戲(彈磚塊)的實現(xiàn),主要運用了用戶圖形界面,程序接口和基本函數(shù)繪制來實現(xiàn),事件監(jiān)聽(包括鼠標(biāo)事件,鍵盤事件,響應(yīng)時間)也是這個程序的特色。此程序用到了圖片的引用,磚塊、彈板應(yīng)用了函數(shù)繪制和圖片引用,彈球的設(shè)計外且安全是應(yīng)用函數(shù)繪制。游戲還利用JAVAApplet實現(xiàn)了播放聲音。再加入復(fù)選框,按鈕,標(biāo)簽等來實現(xiàn)本游戲用戶界面布局??傊居螒蛟谟脩艚缑娴目刹僮餍?、游戲的美觀度、計分計時存儲結(jié)果方便都基本完善,有一定的可玩性。2.1.1打磚塊小游戲系統(tǒng)任務(wù)及目的此小程序是為群眾閑暇消遣之用,玩家在進(jìn)入游戲后輸入自己的大名,按游戲規(guī)則用彈球打掉彈板上的全部磚塊,獲得相應(yīng)的分?jǐn)?shù),進(jìn)入下一關(guān),知道全部過關(guān),游戲結(jié)束后可記錄玩家分?jǐn)?shù)及排行榜名次進(jìn)入游戲界面,一個文本框可以選擇是否記錄游戲這名字,接著是“開始”、“暫?!薄ⅰ爸匦麻_始”按鈕以及四個復(fù)選框分別控制背景音樂、速度、模型和關(guān)卡,還有四標(biāo)簽記錄時間、生命分?jǐn)?shù)和排行榜數(shù)據(jù)。2主要特色系統(tǒng)介紹游戲增加了背景音樂以及碰撞音樂的設(shè)置,并用圖片代替了純粹用函數(shù)構(gòu)造出的彼塊,使玩家在使用此程序時更加能體驗到樂趣。自主選關(guān)、模式選擇和速度選擇給了玩家更多的自主機動性,使得玩家可以根據(jù)自己的意愿來設(shè)定游戲難度,排行榜功能也是特色之一,玩家可以根據(jù)排行榜來了解自己玩的如何,可以有個相對的比較。3本章小結(jié)雖然游戲在功能和界面上不能算的上很棒,但是麻雀雖小,五臟俱全,游戲具備了彈磚塊這個經(jīng)典游戲鎖應(yīng)該具有的基本雛形。通過這一章,我們對這個游戲應(yīng)該有了比較宏觀的了解,我們將在這一基礎(chǔ)上探究游戲更完美的改變。第3章打磚塊游戲系統(tǒng)的設(shè)計這一章是打磚塊游戲系統(tǒng)的設(shè)計,從系統(tǒng)需求分析開始,介紹開發(fā)環(huán)境和用到的開發(fā)工具,系統(tǒng)主要的功能設(shè)計,系統(tǒng)的數(shù)據(jù)流程圖。系統(tǒng)需求分析打磚塊的設(shè)計目標(biāo)為:(1)實現(xiàn)打磚塊游戲功能,使用背景音樂,可用鍵盤或者鼠標(biāo)控制擋板,并對游戲時間,游戲分?jǐn)?shù)進(jìn)行記錄并保存成績到文本,列出成績排行榜。(2)實現(xiàn)游戲難度和游戲模型的選擇,通過本關(guān)后可以選擇進(jìn)入下一關(guān)。(3)得到不同寶物可以實現(xiàn)多種游戲功能,加強游戲可玩性。2系統(tǒng)開發(fā)及運行環(huán)境硬件平臺:CPU:INTEL-15o存:1024MB以上。軟件平臺:操作系統(tǒng):WindowsXPo數(shù)據(jù)庫:TXT文檔。開發(fā)工具包:JDKVeision1.6.2o分辨率:最佳效果1024X768像素。3.3系統(tǒng)主要功能要求本系統(tǒng)為了實現(xiàn)游戲打磚塊。本系統(tǒng)主要實現(xiàn)如下功能:系統(tǒng)界面美觀大方舒適。實現(xiàn)游戲一些基礎(chǔ)信息的保存和讀取。畫面流暢,具有可玩性沒有較大的游戲BUG。文檔顯示游戲者的游戲時間和積分。存儲玩家的積分。實現(xiàn)多種難度的選擇。實現(xiàn)多種彼塊的排列模型。多種寶物可以實現(xiàn)不同的功能玩家可以輸入名稱存入數(shù)據(jù)庫。系統(tǒng)最大限度地實現(xiàn)了易維護(hù)性和易操作性。系統(tǒng)運行穩(wěn)定、安全可靠。實現(xiàn)用戶的注冊及注冊信息的保存3.4.1打磚塊系統(tǒng)總體結(jié)構(gòu)打磚塊游戲是基于基本的軟件和普通硬件基礎(chǔ)上的傳統(tǒng)優(yōu)秀游戲,一個游戲應(yīng)該包括以下幾大功能,如圖3.1所示打磚塊系統(tǒng)

基礎(chǔ)游戲功能數(shù)據(jù)保存查詢統(tǒng)計打破塊游戲模型調(diào)整游戲難度調(diào)整用戶注冊姓名得分記錄輸入姓名查詢游戲分?jǐn)?shù)基礎(chǔ)游戲功能數(shù)據(jù)保存查詢統(tǒng)計打破塊游戲模型調(diào)整游戲難度調(diào)整用戶注冊姓名得分記錄輸入姓名查詢游戲分?jǐn)?shù)圖3.1系統(tǒng)功能結(jié)構(gòu)圖各功能模塊實現(xiàn)的功能為:游戲管理模塊:實現(xiàn)基本的打磚塊操作并實現(xiàn)游戲模型調(diào)整和游戲難度調(diào)整。查詢統(tǒng)計:讓玩家注冊用戶并保存它的游戲數(shù)據(jù)。實現(xiàn)游戲分?jǐn)?shù)的查詢。游戲管理模塊圖如圖3.2所示。

圖3.2游戲管理功能模塊圖查詢統(tǒng)計模塊圖如圖3.3所示圖3.3查詢統(tǒng)計功能模塊圖

4系統(tǒng)數(shù)據(jù)流游戲信息的流向,即系統(tǒng)數(shù)據(jù)流圖如圖2.3所示。圖3.3系統(tǒng)數(shù)據(jù)流圖5本章小結(jié)本章是打破塊游戲的具體設(shè)計過程,有具體的需求分析、系統(tǒng)功能模塊、系統(tǒng)數(shù)據(jù)流圖。這里我們開始接觸JAVA程序設(shè)計的最初步驟,也是很重要的一步。第4章系統(tǒng)數(shù)據(jù)庫設(shè)計本章是打磚塊的數(shù)據(jù)庫設(shè)計,有了數(shù)據(jù)庫,就可以對游戲的成績,玩家進(jìn)行保存,提高游戲的可玩性、競爭性4.1數(shù)據(jù)庫設(shè)計過程數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫應(yīng)用系統(tǒng),使之能有效的存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求。數(shù)據(jù)庫設(shè)計方法是研究數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是數(shù)據(jù)庫在應(yīng)用領(lǐng)域中的主要的研究課題。需求分析打磚塊的游戲存儲需要兩部分:一是游戲注冊以及存儲,二是游戲分?jǐn)?shù)存儲2功能實現(xiàn)運用較為簡單的java程序代碼,先需要注冊用戶名,效果如圖421將游戲數(shù)據(jù)存入一個名為scoie.txt的文本文檔。實現(xiàn)效果如下圖4.2.2圖421C?score,txt一記事本文件d)編輯⑥格式⑥)查看9幫助QPnanezrtyscore:30name:zxnscore:90name:qscscore:70圖4.2.2游戲信息的存儲3本章小結(jié)本章是打磚塊游戲系統(tǒng)的數(shù)據(jù)庫開發(fā)。采用的是TXT文本o第5章系統(tǒng)的具體實現(xiàn)界面是系統(tǒng)和玩家之間最宜接的交互界面,界面的友好性體現(xiàn)了程序設(shè)計的質(zhì)量,界面是否便捷易懂也是程序所基本的要求。界面設(shè)計用戶登錄界面5.1.2游戲主界面上圖就是進(jìn)入游戲后的界面,接下來用一個框圖來表現(xiàn)界面的說明。用戶界面p界面的初始化的關(guān)鍵代碼為:publicclassGaineextendsJFrameunplementsRumiable,KeyListenei;ActioiiListenei'{privateStnngs=newString(“打磚塊游戲)//定義組件JToolBartoolbar=newJToolBar();//工具欄JButtongstart=null;//開始按鈕JButtongstop=null;//暫停按鈕JButtongrestait=null;//重新開始按鈕JButtonsetmusic=null;//設(shè)置音樂按鈕JButtonsetspeed;〃設(shè)置速度按鈕JLabelcrime=null;//計時標(biāo)簽JLabelclifb=null;〃生命標(biāo)簽JLabelcsco】e=null;〃分?jǐn)?shù)標(biāo)簽JComboBoxgmodel=null;//石專塊排列模型JComboBoxsetgate=null;〃設(shè)置關(guān)卡JTextFieldsetName=null;〃游戲者//定義變量staticintspeed=100;11速度(全局靜態(tài))staticbooleanisfiie=tme;//isfiie為tme時,有碰撞聲staticinttoolgate=0;staticbooleanrespeed=false;inthours=0,minutes=0,seconds=0;intm=8,n=5;intlife=3;//生命intsco】e=0;〃分?jǐn)?shù)booleanisstop=tme;//開始暫停booleansetpaddle=tine;booleansetball=tme;intmodel=1;//成塊疊放的模型0為矩形1為三角形2為倒三角形3為空三角形4為六邊形//定義嵌入對象SetMusicGetMusic;//音樂窗口SetSpeedsettingspeed;//速度窗口FneWicefilevoice;//聲明碰撞聲音類Tlueadt=newTluead(tlus);//定義圖形Buckbnck[][]=null;//磚塊Ballball=new//球Paddlepaddle=newPaddle。;//板塊Treasure[]treasure=newTreasure[4];〃寶物MyPanelpanel;//畫板Buffeiedbnageimg1;//圖片Bufferedhnageimg2;*主界面初始化函數(shù)***/publicvoidmit(){inityranable();GetMusic=newSetMusic();//開啟音樂settingspeed=newSetSpeedQ;//初始化速度設(shè)置窗口filevoice=newFueVbice。;setName=newJTextField(lO),輸入對話框//設(shè)置窗體setSize(800,500);setBackground(Color.white);panel=newMyPanel();this.setResizable(false);tlus.setLocation(200,200);ContainercontentPane=getContentPaneQ;contentPane.setLayout(newBoideiLayoutO);this.setTitle(s);//初始化按鈕gstail=newJButton,開始”);gstop=newJButton("暫停)giestait=newJButton("重新開始”);setmusic=newJButton("設(shè)置音樂)setspeed=newJButton("設(shè)置速度”);//初始化計時標(biāo)簽ctime=newJLabel("計時:00:00:00");chfe=newJLabel("生命:3");cscoie=newJLabel("分?jǐn)?shù):0H);//初始化下拉欄String[]smodel={”模型1”,“模型2“J模型3”,“模型4”模型5”);gmodel=newJComboBox(smodel);Stnng[]sgate={"第1關(guān)/第2關(guān)“,"第3關(guān)第4關(guān)”「第5關(guān)”};setgate=newJComboBox(sgate);//將組件添加到工具欄toolbar.add(gstait);toolbar.addSeparator。;〃添力口分隔欄toolbar.add(gstop);toolbar.addSeparator。;〃添力口分隔欄toolbai.add(grestart);toolbar.addSeparator。;〃添力口分隔欄toolbar.add(setmusic);toolbar.addSeparator。;〃添力口分隔欄toolbar.add(setspeed);toolbar.addSeparator。;〃添力口分隔欄toolbar.add(gmodel);toolbai.addSeparatoK);〃添加分隔欄toolbar.add(setgate);toolbar.addSeparator。;〃添力口分隔欄tooibar.add(ctime);toolbar.addSeparator。;〃添力口分隔欄toolbar.add(clife);toolbar.addSeparator。;〃添力口分隔欄toolbar.add(cscore);//添加組件到畫板contentPane.add(toolbai;BoideiLayout.NORTH);contentPane.add(panel,BordeiLayout.CENTER);//監(jiān)聽事件gstop.setEnabled(false);gstan.addActionListener(this);gstop.addActionListener(this);gfestait.addActionListener(this);setmusic.addActionListener(tlus);setspeed.addActionListener(tlus);gmodel.addActioiiListenei(tliis);setgate.addActionListener(this);setName.addActionListener(tlus);addMouseMotioiiListenei(newMouseMove());panel.addKeyListenei(tlus);panel.iequestFocus();tlus.setDefaultCloseOpeiation(JFrame.EXIT_ON_CLOSE);〃輸入setVisible(tnie);nitli=JOptionPane.sliowCoiifiiiiiDialog(iiulLsetName/1輸入”,JOptioiiPane.YES_NO_OPTION);if(h==1){System.exit(O);}else{t.staitQ;5.2程序設(shè)計及調(diào)試運行編寫12個CLASS文件,存入一個包“S”中,各個模塊的程序代碼都完成后,進(jìn)行編譯連接運行,經(jīng)過反復(fù)調(diào)試,找出錯誤和不足,以達(dá)到游戲所需的基本功能和基本界面。這個過程比較繁瑣,我們參考網(wǎng)絡(luò)上現(xiàn)有的資源,并加以改進(jìn),對各個模塊仔細(xì)分析備注并進(jìn)行調(diào)試,做到程序簡潔易懂,可讀性好。盡量避免因代碼不完善而導(dǎo)致的游戲運行中可能出現(xiàn)的錯誤。自動計時游戲的自動計功能是非常有必要的,可以讓玩家很直觀地看到自己所玩的時間。下面是自動計時功能的部分關(guān)鍵代碼:publicStrmggettimes(inthours,intminuts,intseconds){//設(shè)置時間格式Stringtext;if(hours<10)text="時間:?'0"十houis;elsetext=Stung.valueOf(liouis);if(minutes<10)text=text+":"+n0n+minutes;elsetext=text+”:“十mmutes;if(seconds<10)text=text++n0n+seconds;elsetext=text+”:“十seconds;returntext;在JPanel中畫JPanel是一般輕量級容器,可以向JPanel容器中放入JPanel,JTextfiled,JButton等。Swing的JPanel支持doublebuffering的功能,使得JPanel在處理動畫上更為流暢,較不會有畫面閃爍的情況發(fā)生。下面是此程序運用Jpanel畫圖的部分主要代碼:classMyPanelextendsJPanel{protectedvoidpaintComponent(Giaphicsg){Giaphics2Dg2d=(Graplucs2D)g;ctime.setText(gettinies(hours,minutes,seconds));//設(shè)置時間g.diawlmage(img1,(mt)paddle.xpaddle,(int)(paddle.ypaddle),(int)paddle.width,(int)paddle.height,null);//畫板塊for(mtj=0;j<bnck[0].length;j++){//畫磚塊fbr(mti=0;i<brick.length;i++){brick[i][j].xBrick=i*(800/m);bnck[i][j].yBrick=j*(200/n);if(bnck[i][j].alive=1){g.diawliiiage(img2,(int)bnck[i][j].xBnck,(mt)biick[i][j].yBfick,(mt)biick[i][j].width,(mt)biick[i][j].heigh,null);}))//畫球g2d.setPaint(newGradientPamt((mt)ball.xBall,(int)ball.yBall,Color.blue,(mt)(ball.xBall十ball.】),(int)(ball.yBall+ball』),Colonyellow,true));g2d.fill(newEllipse2D.Double(ball.xBalLball.yBall,ball.i;

ball.i));//畫寶物g.setColor(Color.black);for(hitk=0;k<tieasure.lengtli;k++){if(treasuie[k].alive=1){g.fill3DRect((mt)tieasuie[k].xtreasure,(mt)tieasuie[k].ytreasure,(mt)treasure[k].width,(mt)treasure[k].height,tine);))))用戶注冊登錄系統(tǒng)下面給出登錄功能的主要代碼publicvoidloguiDialogO{logm=newJDialogO;login.setTitle(n登錄");logm.setLayout(newFlowLayoutQ);login.add(newJLabel("用戶名:*'));logm.add(name);login.add(newJLabel("密 碼:"));password.setEchoCliaiX**');logm.add(password);JButtonconfirm=newJButton(“登錄confiim.addActioiiListenei(newActioiiListenei(){newpublicvoidactioiiPeiibrmed(ActioiiEvente){newif (compaieUseiData(name.getText0.tnin(),Stnng(password.getPasswoidQ))){login,setVisible(false);f.setVisible(tme);}else{JOptionPane.showMessageDialog(login,”用戶名或密碼錯誤!“錯誤提示",JOptionPane.ERROR_MESSAGE);))});logm.add(confiim);finalJDialogregDialog=newJDialogQogin,“注冊",tine);registeiDialog(iegDialog);JButtonregister=newJButtonC'注冊)registeraddActionListener(newActionListenei(){publicvoidactioiiPeiibrmed(ActionEvente){regDialog.setVisible(tiiie);)});logm.add(registei);logm.setSize(200,130);logm.setResizable(false);logm.setLocatioiiRelativeTo(null);logm.setVisible(tnie);}游戲結(jié)果的存儲此功能將用戶游戲后的結(jié)果存入TXT文檔中關(guān)鍵代碼如下publicbooleansaveUseiData(Stiingname,Stungsex,Strmgpassword1,Stringpasswoid2){if(!password1.equals(password2))retumfalse;try{RandoniAccessFileout=newRandoniAccessFile(nuser.txt,\out.seek(out.lengthO);out.wiiteUTF(name);out.wiiteUTF(sex);out.wiiteUTF(passwoid1);out.closeO;}catch(lOExceptione){e.piuitStackTrace();returnfalse;)letuintine;)〃保存成績publicvoidsaveScore(){try{RandoniAccessFileraf^newRandoniAccessFile(nscoie.txtM/nvn);Strings=String.valueOf(score);iaf.seek(raf.length());raf.wiiteBytes(Hname:n+name.getText());raf.wnteBytes(nscore:u+s+n ");}catch(IOExceptione){})5.3本章小結(jié)本章介紹了程序的具體實現(xiàn)和部分關(guān)鍵代碼,包括自動計時,界面初始化和用Jpanel畫圖的部分源代碼,在這里我們對本程序有了更加深入徹底的了解。第6章結(jié)束語由于市場需要,游戲的更新速度步步加快,為了適應(yīng)社會的需要,社會對游戲開發(fā)人員的需求,在游戲編程的學(xué)習(xí)過程中,必須理論與實踐結(jié)合,提高編程能力與水平。通過小游戲的設(shè)計,對以學(xué)過的容加深理解,對游戲開發(fā)的過程有初步的認(rèn)識,為以后的游戲開發(fā)設(shè)計和更加深入的學(xué)習(xí)計算機語言打下夯實的基礎(chǔ)。目前競爭日益激烈的行業(yè)環(huán)境,對于未來行業(yè)的前景,還是要保持樂觀的心態(tài)。畢竟游戲并不是一下子就可以編寫成的。需要不斷的技術(shù)積累,需要團隊的合作,提高了工作的效率,才算是在游戲開發(fā)的道路上成功了一半。在現(xiàn)在這個信息化飛速發(fā)展的道路上,要成為一名合格的編程人員,那就必須走好每一步現(xiàn)在的路?;贘ava的打破塊小游戲,滿足了用戶娛樂的需求,已經(jīng)達(dá)到了預(yù)期的目標(biāo)。雖然該游戲大部分功能基本上已經(jīng)實現(xiàn),但是還是會存在一些不足:(1)游戲中存在一些BUG,游戲中彈球有時不會下落,未碰到的磚塊卻自動消失了。(2)游戲的關(guān)卡太少,樣式不夠多樣化,不能滿足用戶對該游戲的挑戰(zhàn)。(3)游戲的色彩不夠多樣化,色彩單一,不能給用戶增加新鮮的娛樂感。(4)對于用戶信息方面,由于該程序沒有涉及到數(shù)據(jù)庫的相關(guān)容,在用戶信息存儲,用戶信息更新功能方面表現(xiàn)欠佳。在用戶信息功能的方面有待進(jìn)一步改善。致謝參考文獻(xiàn)[1](美)??藸栔基i,饒若楠等譯.Java編程思想[J].機械工業(yè),2005[2](美)GaryJ.Bionson著瓏雅文譯.Java編程原理[J].清華大學(xué),2004[3](美)MichaelMomson著徐剛,于健,薛雷譯.游戲編程入門[J].人民郵電,2005.9[4](美)WendyStah㈣著馮寶坤,曹英譯.游戲編程中的數(shù)理應(yīng)用[J].紅旗,2005[5](美)克羅夫特(DavidWallaceCioft)著彭暉譯.Java游戲高級編程[J].清華大學(xué),2005[6](美)DavidBiackeen著邱仲潘譯.Java游戲編程[J].科學(xué),2004[7]聶慶亮編著.Java應(yīng)用開發(fā)指南[J].清華大學(xué),2010[8]耿祥義,躍平編著.Java面向?qū)ο蟪绦蛟O(shè)計[J].清華大學(xué),2010[9]紹方編著.Java編程實用技術(shù)與案例[J].清華大學(xué),2000.11[10]明日科技編著.Java編程全能詞典叫.電子工業(yè),2010附錄源代碼此游戲包含8個java文件,Ball.java,Biick.java,Paddle.java,Tieasuie.java,Nextnew.java,SetMusic.java,SetSpeedjava.Gamejava。BalLjavapackages;〃球publicclassBall{doublexBall=10.yBall=470;double1-20;publicBall0{}}Brick.javapackages;//磚塊publicclassBiick{doublexBnck=0,yBiick=0;doublewidth=60;doubleheigli=40;mtalive=0;mtistreasure=0;publicBrick(){}}Paddle.javapackages;〃檔板publicclassPaddle{publicdoublexpaddle=320;publicdoublewidth=150;publicdoubleheight=20;publicdoubleypaddle=435-height;}Treasure.javapackages;〃寶物publicclassTreasure{mtalive=0;doublextreasure=O,ytreasure=O,widtli=10Jieight=10;publicTieasure(){}}NextNew.javapackages;〃下一關(guān)miportjava.applet.*;importjava.awt.*;miportjava.awl.event.*;miportjavax.swing.*;publicclassNextNewextendsJFiaineunplementsActionListenei{JPaneljpO;JButtonok;JButtonquit;publicNextNew(){supei(“打磚塊)setSize(300J50);setLocation(300.300);setBackground(Color.white);jp0=newJPanelO;ok=newJButton("確定");quit=newJButton("退出jpO.add(ok);jpO.add(quit);setLayout(newBorderLayout());add(HNonh',,(newJPanelQ).add(newJLabel(u恭喜你!過關(guān)了!")));add(nCenteiJ\(new JPanelO).add(new JLabel(M是否繼續(xù)下一關(guān)?”)));add(HSouth',,jpO);setVisible(tiue);)OvemdepublicvoidactioiiPerfdrmed(ActionEvente){//TODOAuto-geneiatedmethodstubif(e.getSouice()=ok){)if(e.getSouice()=quit){)}publicstaticvoidmain(Stnngaig[]){NextNewgameovei-newNextNewQ;}}SetMusic.javapackages;miportjava.applet.*;importjava.awt.*;miportjava.awl.event.*;miportjava.io.*;miportjavax.swing.*;publicclassSetMusicextendsJFiamemiplementsActionListenerJteniListener{privateintclioice=0;publicstaticStrmgsl=newStiing(Hl.nudM);privatebooleanfiiststait=tme;JPaneljpl;JPaneljp2;JPaneljp3;JLabelBackMusic;JComboBoxSelectMusic;JButtonMusicStop;JLabelFiieVbice;JButtonFVOpen;JButtonFVClose;JButtonok;文檔publicstaticSelectMusicmusic;publicSetMusic(){//supeiC設(shè)置窗口)setSize(300J50);setLocation(300.300);setBackgiound(Color.white);music=newSelectMusic();jpl=newJPanelQ;jp2=newJPanelQ;jp3=newJPanelQ;BackMusic=newJLabel("背景音樂:”);SelectMusic=newJComboBoxQ;;MusicStop=newJButton(“關(guān)閉”);SelectMusic.addltemListener(tlus);MusicStop.addActionListener(tlus);setLayout(newBorderLayout());FueVbice=newJLabel("碰撞聲音:”);FVOpen=newJButton(”打開)FVClose=newJButton("關(guān)閉)FVOpen.addActionListenef(this);FVClose.addActioiiListenef(tlus);ok=newJButton("確定");jpl.add(BackMusic);jp1.add(SelectMusic);jpl.add(MusicStop);MusicStop.setEnabled(false);SelectMusic.msenIteniAt(umusic-r\O);SelectMusic.msenIteniAt(umusic-2,U);SelectMusic.msenIteniAt(umusic-3,\2);SelectMusic.msenIteniAt(umusic-4H3);SelectMusic.setSelectedhidex(O);add(,*North',,jpl);jp2.add(FueVoice);jp2.add(FVOpen);jp2.add(FVClose);FVClose.setEnabled(tme);FVOpen.setEnabled(false);add(',Centei,,jp2);jp3.add(ok);ok.addActionListenei(tlus);add("South”,jp3);setVisible(false);)publicvoidactioiiPerfbrmed(ActionEvente){//TODOAuto-geneiatedmethodstubif(e.getSouice()=FVOpen){Game.isfiie=tme;FVOpen.setEnabled(false);FVClose.setEnabled(tiiie);)if(e.getSource()=FVClose){Game.isfiie=false;FVOpen.setEnabled(tme);FVClose.setEnabled(false);)if(e.getSouice()=MusicStop){music.Music1StopO;MusicStop.setEnabled(false);SelectMusic.setEnabled(tme);)if(e.getSouice()=ok){disposeQ;)}OvemdepublicvoiditemStateClianged(IteniEventel){//TODOAuto-geneiatedmethodstubif(SelectMusic.getSelectedItem()=nmusic-1n){if(sl=Hl.nudu){music.Music1Stop();)sl=Hl.nudn;music.Music1Start。;)if(SelectMusic.getSelectedItem()=umusic-2n){if(sl==n2.nudu){music.Music1Stop();)sl=n2.midn;music.Music1Start。;)if(SelectMusic.getSelectedItem()=umusic-3n){if(sl=n3.nudu){music.Music1StopQ;)sl=n3.midn;music.Music1Start。;)if(SelectMusic.getSelectedItem()=umusic-4H){if(sl=,,4.nud,,){music.Music1StopQ;)sl=H4.midn;music.Music1Start。;)MusicStop.setEnabled(tnie);SelectMusic.setFocusable(false);SelectMusic.setEnabled(false);}}classSelectMusic{AudioClipml;publicvoidMusiclStait(){try{Filemusic=newFile(SetMusic.sl);ml=Applet.newAudioClip(music.toURL());ml.loopQ;)catch(Exceptione){e.piuitStackTrace();))publicvoidMusiclStop(){ml.stopQ;classFueVbice{AudioClipm2;publicvoidMusic2Stait(){try{Filemusic=newFile(n5.nud,f);m2=Applet.newAudioClip(music.toURL());m2.play();).catch(Exceptione){e.pimtStackTrace();))publicvoidMusic2Stop(){ni2.stop();}}SetSpeedjavapackages;unportjava.applet.*;importjava.awt.*;unportjava.awl.event.*;unportjavax.swing.*;publicclassSetSpeedextendsJFiamemiplementsActionListenerJteniListener{JPaneljp_l;JPaneljp_2;ButtonGroupgroup=newButtonGroup();publicstaticJRadioButtonspeed1;JRadioButtonspeed2;JRadioButtonspeed3;JRadioButtonspeed4;JRadioButtonspeed5;JButtonok;publicSetSpeed(){setTitle("設(shè)置速度)setSize(500J50);setLocation(300.300);setBackgiound(Coloi\white);jp_l=newJPanel();jp_2=newJPanel();speedl=newJRadioButton("慢速”);speed2=newJRadioButton(“較慢”);speed3=newJRadioButton(“中速”);speed4=newJRadioButton(”較快”);speed5=newJRadioButton(”快速)ok=newJButton(”確定)group.add(speedl);group.add(speed2);gioup.add(speed3);gioup.add(speed4);gioup.add(speed5);jp_l.add(speedl);jp_l.add(speed2);jp_l.add(speed3);jp_l.add(speed4);jp_l.add(speed5);jp_2.add(ok);setLayout(newBordeiLayout());add('*Northn,(newJPanelQ).add(newJLabel("請選擇速度等級!**)));add(nCenteinjp_l);add(',South',,jp_2);speed1.addItemListenei(this);speed2.addItemListenei(this);speed3.addltemListenef(this);speed4.addItemListenei(this);speed5.addltemListenef(this);ok.addActionListenei(tlus);setVisible(false);}OvemdepublicvoidactioiiPerfdrmed(ActionEvente){//TODOAuto-geneiatedmethodstubif(e.getSoufce()=ok){disposeQ;)}OvemdepublicvoiditemStateClianged(IteniEvente){//TODOAuto-geneiatedmethodstubif(e.getltem()==speed1){Game.speed=100;)elseif(e.getltem()==speed2){Game.speed=80;)if(e.getltem()==speed3){Game.speed=60;)if(e.getltem()==speed4){Game.speed=40;)if(e.getltem()==speed5){Game.speed=20;)}publicstaticintgetspeed(inttoolgate){letuni(Game.speed-toolgate*5);}}Game.javapackages;unportjava.applet.AudioClip;unportjava.awl.BordeiLayout;importjava.awt.Colo1;unportjava.awl.Container;unportjava.awl.GiadientPamt;importjava.awt.Giaphics;importjava.awt.Giaphics2D;miportjava.awl.event.*;miportjava.awrt.geom.Ellipse2D;importjava.awl.miage.Bufferedlmage;miportjava.io.File;miportjava.io.IOException;miportjava.io.*;unportjavax.imageio.LnagelO;miportjavax.swing.event.*;miportjavax.swing.*;miportjava.awl.BorderLayout;importjava.awt.Checkbox;unportjava.awl.CheckboxGroup;importjava.awt.Colo1;miportjava.awl.Container;miportjava.awl.FlowLayout;importjava.awt.Font;miportjava.awl.GndLayout;importjava.awt.Toolkit;unportjava.awl.datatransfeLClipboaid;unportjava.awl.datatransfei.DataFlavor;unportjava.awl.datatransfeLStrmgSelection;unportjava.awl.datatransfeLTiansfeiable;importjava.awl.datatiansfeLUnsuppoitedFlavoiException;miportjava.awl.event.ActioiiEvent;unportjava.awl.event.ActionListener;unportjava.awl.event.IiiputEvent;unportjava.awl.event.KeyEvent;miportjava.io.File;miportjava.io.FileReader;miportjava.io.FileWnter;miportjava.io.IOException;miportjava.io.RandoniAccessFile;unportjava.text.SunpleDateFoimat;miportjava.util.Date;miportjavax.swing.Box;unportjavax.swing.JButton;unportjavax.swing.JDialog;miportjavax.swing.JFiame;miportjavax.swing.JLabel;unportjavax.swing.JMenu;unportjavax.swing.JMenuBar;unportjavax.swing.JMenuItem;unportjavax.swing.JOptioiiPane;unportjavax.swing.JPanel;unportjavax.swing.JPasswordField;unportjavax.swing.JScrollPane;unportjavax.swing.JTextArea;unportjavax.swing.JTextField;unportjavax.swing.KeyStroke;unportjavax.swing.Tuner;publicclassGameextendsJFiamemiplementsRunnable,KeyListener,ActionListenei{privateStrings=newString("打磚塊游戲”);//定義組件JFiamef;JDialoglogin,addUser;JToolBartoolbar=newJToolBar();//工具欄JButtongstait=null;//開始按鈕JButtongstop=null;//暫停按鈕JButtongrestart=null;//重新開始按鈕JButtonsetmusic=null;〃設(shè)置音樂按鈕JButtonsetspeed;〃設(shè)置速度按鈕JLabelctmie=null;//計時標(biāo)簽JLabel 生命標(biāo)簽JLabelcscoie=null;〃分?jǐn)?shù)標(biāo)簽JComboBoxgmodel=null;//磚塊排列模型JComboBoxsetgate=null;〃設(shè)置關(guān)卡finalJTextFieldname=newJTextField(lO);//finalJPasswoidFieldpassword=newJPasswoidFieId(10);〃密碼//定義變量staticnitspeed=100;//速度(全局靜態(tài))staticbooleanisfiie=tine;//isfiie為tine時,有碰撞聲staticinttoolgate=0;staticbooleanrespeed=false;mtliouis=0,niuiutes=0,seconds=0;mtm=8,n=5;mtlife=3;//生命mtsco】e=0;〃分?jǐn)?shù)booleanisstop=tme;//開始暫停booleansetpaddle=true;booleansetball=tine;mtmodel=1;//磚塊疊放的模型0為矩形1為三角形2為倒三角形3為空三角形4為六邊形//定義嵌入對象SetMusicGetMusic;//音樂窗口SetSpeedsettingspeed;//速度窗口FneWicefkevoice;〃聲明碰撞聲音類Tlueadt=newTluead(this);//定義圖形Buckbnck[][]=null;//磚塊Ballball=newBall。;//球Paddlepaddle=newPaddle();//板塊Tieasuie[]treasuie=newTieasuie[4];//寶物MyPanelpanel;〃畫板Bufferedhnageimgl;//圖片Buffeiedhnageimg2;/***構(gòu)造函數(shù)***/publicGame(){}〃登陸注冊界面publicvoidloginDialogO{logm=newJDialogO;logm.setTitle(n登錄");logm.setLayout(newFlowLayoutQ);logm.add(newJLabel("用戶名:*'));logm.add(name);logm.add(newJLabel("密 碼:"));password.setEclioCliaiX**');logm.add(password);JButtonconfiim=newJButton("登錄");confiim.addActioiiListenei(newActioiiListenei(){publicvoidactioiiPeifbmied(ActionEvente){if (compaieUseiData(name.getText0.tiim(), newStnng(password.getPasswordQ))){login.setVisible(false);f.setVisible(true);}else{JOptionPane.showMessageDialogQogin,”用戶名或密碼錯誤!“錯誤提示”,JOptionPane.ERROR_MESSAGE);))});logm.add(confinn);finalJDialogregDialog=newJDialogQogin,“注冊",tine);legisterDialog(regDialog);JButtonregister=newJButton("注冊)iegisteLaddActionListener(newActionListeneiQ{publicvoidactionPerfoimed(ActionEvente){legDialog.setVisible(tnie);)});logui.add(registei);logm.setSize(200.130);logm.setResizable(false);logm.setLocatioiiRelativeTo(null);logm.setVisible(tnie);)〃用戶名密碼的確認(rèn)publicbooleancompareUseiData(Stiuigname.Stungpassword){try{RandoniAccessFileout=newRandoniAccessFile(Muser.txt,\niwn);Stringfiiame,fpasswoid=null;while(out.getFilePointerO<out.lengthQ){fiiame=out.readUTF();out.ieadUTFQ;password=out.ieadUTFO;if(fiiame.equals(name)&&fpasswoid.equals(passwoid))letuintnie;)out.closeQ;}catch(lOExceptione){e.piuitStackTrace();)letuinfalse;)〃注冊用戶的信息publicvoidiegisteiDialog(finalJDialogregDialog){Boxboxl=Box.cieateVeilicalBoxQ;boxl.add(newJLabel(”用戶名:JLabel.RIGHT));box1.add(Box.createVemcalStiiit(l0));boxl.add(newJLabel(“性別二JLabel.RIGHT));box1.add(Box.createVemcalStiiit(l0));boxl.add(newJLabel。密碼二JLabeLRIGHT),-1);box1.add(Box.cieateVemcalStnit(l0));boxl.add(newJLabel。確認(rèn)密碼二JLabel.RIGHT));Boxbox2=Box.cieateVeiticalBoxO;filialJTextFieldnameTextField=newJTextField(lO);box2.add(nameTextField);box2.add(Box.cieateVemcalStnit(8));filialCheckboxGroupcbg=newCheckboxGioupQ;Boxbox21=Box.createHoiizontalBoxO;filialCheckboxcbl=newCheckbox。男”,cbg,tine);box21.add(cbl);box21.add(newCheckbox,女”,cbg,false));box2.add(box21);box2.add(Box.cieateVemcalStnit(8));filialJPasswoidFieldpassl=newJPasswordFidd(10);box2.add(passl);box2.add(Box.cieateVemcalStnit(8));filialJPasswoidFieldpass2=newJPasswoidField(lO);box2.add(pass2);BoxbaseBox=Box.createHonzontalBox();baseBox.add(boxl);baseBox.add(box2);iegDialog.setLayout(newFlowLayout());legDialog.add(baseBox);JButtonconfiini=newJButton("確定)JButtoncancel=newJButton(“取消");legDialog.add(confinii);legDialog.add(cancel);iegDialog.setSize(200,200);legDialog.setResizable(false);legDialog.setLocatioiiRelativeTo(null);confiim.addActionListenei(newActionListenerO{publicvoidactioiiPeiibimed(ActioiiEventaigO){Stringsex=null;if(cbg.getSelectedCheckboxQ=cbl)sex="男";elsesex="女";if(saveUserData(nameTextField.getText().tnni(),sex,new Stiing(passl.getPasswoid()), newStnng(pass2.getPasswordQ)))regDialog.setVisible(false);elseJOptionPane.showMessageDialogQegDialog,”輸入有誤,請檢查",“錯誤提示”,JOptioiiPane.ERROR_MESSAGE);)});cancel.addActionListener(newActionListenerQ{publicvoidactioiiPeiibrmed(ActioiiEventargO){regDialog.setVisible(false);)});)*初始化變量***/publicvoidinitvariable(){hours=0;minutes=0;seconds=0;speed=SetSpeed.getspeed(toolgate);life=3;isstop=tine;setpaddle=tme;setball=tme;model=0;switch(toolgate){case0:m=4;n=5;ball.r=30;paddle.width=150;uy{img2=ImageIO.read(newFile(Hl.jpgn));}catch(lOExceptionel){el.pnntStackTraceO;)break;case1:m=8;n=5;ball.r=20;paddle.widtli=120;tiy{img2=IinageIO.iead(newFile(n2.jpgn));}catch(lOExceptionel){e1.pnntStackTraceO;)break;default:m=16;n=5;ball.r=10;paddle.widtli=90;tiy{img2=IinageIO.iead(newFile(n3.jpgn));}catch(lOExceptionel){e1.pnntStackTraceO;))ball.xBall=paddle.xpaddle+paddle.widtli*0.5;ball.yBall=paddle.ypaddle-ball.r;brick=newBrick[m][n];fbi(inta=0;a<treasuie.length;a++){treasure[a]=newTreasureQ;)int[]k=newmt[4];fbi(inta=0;a<k.length;a-H-){k[a]=(int)(Math.random()*(m*n));)for(intj=0;j<bnck[0].length;j++){for(hiti=0;i<brick.length;i-H-){bnck[i][j]=newBrick();bnck[i]|j].widtli=800/m;bnck[i][j].heigh=20

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論