高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)總結(jié)_第1頁(yè)
高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)總結(jié)_第2頁(yè)
高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)總結(jié)_第3頁(yè)
高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)總結(jié)_第4頁(yè)
高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、程序名稱:魔塔專(zhuān)業(yè)班級(jí):軟件工程四班小組成員姓名及學(xué)號(hào):朱志鑫201500301238李嘉偉201500301158龔樹(shù)志201500301120高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)總結(jié)程序名稱:魔塔專(zhuān)業(yè)班級(jí):軟件工程四班小組成員姓名及學(xué)號(hào):朱志鑫201500301238李嘉偉201500301158龔樹(shù)志201500301120系統(tǒng)分析與設(shè)計(jì)3系統(tǒng)的實(shí)現(xiàn)4錯(cuò)誤以及調(diào)試6說(shuō)明書(shū)7收獲體會(huì)8系統(tǒng)分析與設(shè)計(jì)1. 需求分析:基于JAVA實(shí)現(xiàn)的小游戲,用于娛樂(lè),豐富自己的代碼水平,對(duì)已有的游戲進(jìn)行改編,添加自己的想象,使玩家感到新穎。2.系統(tǒng)設(shè)計(jì):總體面板采用二維數(shù)組的形式,將畫(huà)面分割成13*13個(gè)小格,添加到二

2、維數(shù)組內(nèi),并對(duì)每一個(gè)元素都給定一個(gè)特定的編號(hào),然后對(duì)此二維數(shù)組進(jìn)行一系列的操作。對(duì)二維數(shù)組的每一個(gè)元素進(jìn)行了分類(lèi),并單獨(dú)包裝成一個(gè)單獨(dú)的類(lèi):有 Hero ,door ,floor ,Key ,Monster ,prop ,stair ,Wall.并在TowerClient類(lèi)內(nèi)進(jìn)行實(shí)現(xiàn)。添加了對(duì)按鍵的處理,采用了多線程的方式來(lái)對(duì)每一個(gè)元素的重畫(huà),和音樂(lè)播放功能的實(shí)現(xiàn)。采用了Window來(lái)展示打斗的場(chǎng)面,并添加了計(jì)時(shí)器,使其彈出一個(gè)定時(shí)關(guān)閉的窗口。系統(tǒng)的實(shí)現(xiàn)樓梯怪物門(mén)鑰匙墻道具元素的分類(lèi):靜態(tài)元素動(dòng)態(tài)人飛行道具 各個(gè)元素在面板上的實(shí)現(xiàn):1. 動(dòng)態(tài)元素: HERO:屬性:血量,攻擊力,防御力,擁有的

3、各種鑰匙。重畫(huà)的實(shí)現(xiàn):采用了鍵盤(pán)控制人物走動(dòng)的方式,通過(guò)增加鍵盤(pán)監(jiān)聽(tīng)器,然后對(duì)相應(yīng)的按鍵進(jìn)行對(duì)應(yīng)的處理,改變?nèi)宋锏腦,Y坐標(biāo)值實(shí)現(xiàn)人物的走動(dòng)。將人物的圖片的URL放在一個(gè)String類(lèi)型的數(shù)組內(nèi),通過(guò)引用這個(gè)數(shù)組內(nèi)的URL地址,來(lái)將圖片畫(huà)在面板上。同時(shí)啟用一個(gè)線程,不斷改變這個(gè)數(shù)組的下標(biāo)值,使每次重畫(huà)的圖片與上次不同,達(dá)到人物走動(dòng)的效果。FLYPROP:作為一個(gè)攻擊完怪物后的獎(jiǎng)勵(lì)道具,他出現(xiàn)的位置由HERO的當(dāng)前位置決定,當(dāng)打斗場(chǎng)面的WINDOW消失后開(kāi)始畫(huà)出,并以一定的速度向右平移,當(dāng)碰到HERO時(shí),按下空格鍵,可以得到道具獎(jiǎng)勵(lì),獲得相應(yīng)屬性的加成,道具消失。2. 靜態(tài)元素:Stair:樓梯

4、是HERO切換樓層的通道,所以它與HERO之間有一個(gè)碰撞方法,當(dāng)發(fā)生碰撞時(shí),切換樓層(改變二維數(shù)組的下標(biāo)值,達(dá)到樓層切換的效果)Monster:怪物是可以與HERO發(fā)生戰(zhàn)斗的,他有和英雄一樣的屬性,當(dāng)他與英雄發(fā)生碰撞時(shí),會(huì)調(diào)用戰(zhàn)斗的WINDOW,并調(diào)用打斗聲音的線程,播放打斗的聲音。如果怪物的等級(jí)過(guò)高,人物打不過(guò),就不會(huì)發(fā)生戰(zhàn)斗,而是作為一堵墻的形式阻擋HERO的行走。Door:門(mén)是通過(guò)對(duì)應(yīng)的鑰匙打開(kāi)的,一共有三種顏色的門(mén),當(dāng)門(mén)打開(kāi)后,門(mén)就會(huì)消失,變?yōu)橥ǖ溃⒂脤?duì)應(yīng)的音樂(lè)線程Key: 鑰匙是和門(mén)配對(duì)的,一種鑰匙能開(kāi)一種門(mén),鑰匙可以全游戲累加,當(dāng)打開(kāi)門(mén)后,對(duì)應(yīng)的鑰匙的數(shù)量會(huì)減一,如果鑰匙不夠,

5、則不能打開(kāi)門(mén)。Wall: 墻是用來(lái)阻擋HERO走動(dòng)的,當(dāng)HERO碰到墻時(shí)就不會(huì)再往前移動(dòng)。PROP:道具能為HERO提供各種加成,來(lái)幫助我們通關(guān)。音樂(lè)的添加:用了兩個(gè)類(lèi)來(lái)實(shí)現(xiàn),一個(gè)類(lèi)的構(gòu)造器有兩個(gè)參數(shù),一個(gè)是音樂(lè)的URL地址,另一個(gè)是一個(gè)布爾變量,來(lái)判斷該音樂(lè)能否重復(fù)播放。當(dāng)需要添加音樂(lè)時(shí),直接NEW出來(lái)一個(gè)線程,并通過(guò)布爾值來(lái)進(jìn)行背景音樂(lè)和效果音樂(lè)的播放。TowerClient類(lèi):這個(gè)類(lèi)是這個(gè)程序的主體,main 方法以及各種監(jiān)聽(tīng)器,面板,以及各個(gè)元素的重畫(huà),方法的調(diào)用都在這個(gè)類(lèi)中完成。錯(cuò)誤以及調(diào)試1、 我們遇到的第一個(gè)困難是在樓梯設(shè)計(jì)時(shí)實(shí)現(xiàn)樓層的轉(zhuǎn)換。即英雄在碰撞到樓梯時(shí)實(shí)現(xiàn)墻壁等一系列事

6、物的重畫(huà),我們嘗試了多種方法如將每個(gè)樓層作為一個(gè)類(lèi)或者將樓層作為一個(gè)單獨(dú)的類(lèi)并有屬性來(lái)定義每個(gè)不同的樓層。但都在實(shí)現(xiàn)的過(guò)程中遇到了很多困難,花了不少時(shí)間還是有難以解決的bug,于是我們想到了來(lái)定義簡(jiǎn)單的樓層,里面擁有每層事物的數(shù)組,不同的數(shù)字代表不同的事物,擁有返回該數(shù)組的方法在上下樓梯時(shí)調(diào)用,通過(guò)傳給主面板不同的數(shù)組來(lái)實(shí)現(xiàn)不同樓層之間的轉(zhuǎn)換。2、 第二個(gè)即是英雄與怪物的打斗場(chǎng)面。本來(lái)我們想要在英雄與怪物碰撞時(shí)直接出結(jié)果,但覺(jué)得單調(diào),于是打算實(shí)現(xiàn)在英雄與怪物大都是出現(xiàn)一個(gè)單獨(dú)的窗口實(shí)現(xiàn)怪物與英雄各個(gè)屬性的對(duì)面以及血量的變化,不同的怪物展示不同的怪物圖像。之后想著美化打斗界面,但由于遇到困難,最

7、終只是稍稍改變了一下。3、 在完善程序的過(guò)程中我們需要對(duì)游戲加入各種音效。但由于并沒(méi)有接觸過(guò)這種方法,只好靠百度學(xué)習(xí),網(wǎng)上尋找講解類(lèi)似問(wèn)題的博客,仔細(xì)研究,最終靠著線程知識(shí),在需要聲效的時(shí)候創(chuàng)建一個(gè)播放聲音的線程,實(shí)現(xiàn)了這種效果。說(shuō)明書(shū)點(diǎn)擊開(kāi)始游戲進(jìn)入游戲界面,方向鍵上下左右控制人物移動(dòng),游戲中有三種顏色鑰匙對(duì)應(yīng)三種顏色的門(mén),碰到怪物,若能夠打過(guò)則開(kāi)始戰(zhàn)斗,若無(wú)法打過(guò),則不會(huì)發(fā)生戰(zhàn)斗。戰(zhàn)斗結(jié)束后會(huì)飄過(guò)三種不同的藥水,在其經(jīng)過(guò)英雄的時(shí)候點(diǎn)擊空格鍵即可獲得該藥水提供的效果。最終就出公主即為完成通關(guān)。收獲體會(huì)經(jīng)過(guò)這幾周對(duì)課設(shè)的設(shè)計(jì)研究完善,讓我更加了解到學(xué)習(xí)java的重要性,在上個(gè)學(xué)期我們學(xué)習(xí)了ja

8、va語(yǔ)言程序設(shè)計(jì)基礎(chǔ),再次基礎(chǔ)之上學(xué)習(xí)起來(lái)就方便了一些,做起實(shí)驗(yàn)來(lái)也會(huì)比較適應(yīng),能很快進(jìn)入狀態(tài)。在程序設(shè)計(jì)過(guò)程中,往往會(huì)遇到很多難懂和自己一個(gè)人很難解決的問(wèn)題,所以要時(shí)時(shí)刻刻有信心,遇到bug先自己調(diào)試,實(shí)在不行再請(qǐng)教別人,一起探討。在這個(gè)實(shí)驗(yàn)后,發(fā)現(xiàn)java在現(xiàn)實(shí)生活中應(yīng)用非常廣,而我們?nèi)缃駥W(xué)的都只是最基礎(chǔ)的東西,要學(xué)習(xí)更深,更專(zhuān)業(yè)的東西,就必須在電腦上實(shí)戰(zhàn)操作。只有現(xiàn)在打好基礎(chǔ)以后才能更好的運(yùn)用。這次課程設(shè)計(jì)也算是我們獨(dú)立完成的第一個(gè)完整的游戲,這期間我們對(duì)各種基礎(chǔ)的語(yǔ)法,方法的使用更加熟練,更加得心應(yīng)手,對(duì)面向?qū)ο笏枷胗辛烁由羁桃稽c(diǎn)的理解,會(huì)在遇到一個(gè)問(wèn)題的時(shí)候自動(dòng)的使用面向?qū)ο蟮乃枷雭?lái)考慮問(wèn)題。此次實(shí)驗(yàn)我們也對(duì)我們的專(zhuān)業(yè)有了理解,同時(shí)對(duì)本專(zhuān)業(yè)的興趣也有所提

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論