




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、«面向對象程序設計課程設計報告題目:超級瑪麗軟件的設計與實現院(系):信息科學與工程學院專業班級:計算機科學與技術1201班學生姓名:程偉學號:011指導教師:吳奕2014年12月29日至2015年月9日華中科技大學武昌分校制面向對象程序設計課程設計任務書一、設計(調查報告/論文)題目超級瑪麗軟件的設計與實現二、設計(調查報告/論文)主要內容內容:開發超級瑪麗能夠在場景中完成各種動作,并且有場景的切換功能。設計一個Mario類、一個場景類、以及敵人類、障礙物類。實現有一定的挑戰的休閑單機小游戲。基本功能與要求:設計一個超級瑪麗游戲實現以下功能:1、點擊“空格”可以使游戲人物進行跳躍。
2、2、點擊方向鍵左右可以使游戲人物前進或者后退。3、設計障礙物,增加游戲的難度。4、設計敵人類,增加游戲難度。5、設計跳躍踩死敵人或者跳躍越過障礙物,保證可以正常前進。6、保證通過所有障礙后可以通關。三、原始資料1 .面向對象程序設計課程設計指導書2 .耿祥義.JAVA大學實用教程.北京:清華大學出版社,2009四、要求的設計(調查/論文)成果1 .課程設計報告2 .課程設計軟件五、進程安排布置任務,查找資料、需求分析1天總體設計1天詳細設計大編制源程序實現大測試與修改1天撰寫課設報告2天六、主要參考資料1張廣彬.Java課程設計案例精編(第二版).北京:清華大學出版社,2011.2耿祥義.Ja
3、va課程設計(第二版).北京:清華大學出版社,2008.3耿祥義.JAVA大學實用教程.北京:清華大學出版社,2009.4鄒林達.陳國君Java2程序設計基礎.北京:清華大學出版社,2010.5鄒林達.Java2程序設計基礎實驗指導.北京:清華大學,2010.指導教師(簽名)20年月日目錄1需求與總體設計需求分析提供一個友好的用戶交互界面,簡單明了容易操作。并且游戲有一定的難度和娛樂性。開發一個Mario類。一個場景類,以及敵人類,障礙物類。讓超級瑪麗能夠在場景中完成各種動作。并且有場景的切換等等功能。游戲中設計了一些很有意思的陷阱,玩家一步小心掉入陷阱,超級瑪麗就會死亡。這樣會給人意想不到的
4、驚奇,達到娛樂大眾,增加游戲難度的效果。游戲的設計匠心獨具,并且都經過了各種測試,除了為玩家增加一些意想不到的游戲陷阱以外,還必須保證玩家能夠通關。程序功能圖如圖1所示:程序類圖系統的整體類圖的框架如圖2所示。首先是窗體類。他需要調用到Mario和BackGround類中的方法。以便動態的顯示Mario類和BackGround而BackGround里面又包含了Enemy和Obstruction。EnemyObstruction和Mario類又調用靜態類StaticValue的方法,用以顯示真實的圖片。而StaticValue則是一個靜態類,將存儲在硬盤的圖片資源加載進入內存以便其他模塊調用。M
5、yrramt2詳細設計MyFrame宴”BuffsredlmageGI6: graphiaQ窗體對象的序列圖7: dr邕wImage。;窗體對象求了JFrame類汶現了Runnable接口。作為窗體對象,山I"先顯示的圖片,障礙窗體,繪制背小然:麻鼠動線程。在run方法里面動態得繪制窗體中需要顯示向Mario打圖片,敵人的圖片。該窗體的run方法是一個死循環,每次執行一個循環調用sleep方法睡眠50毫秒。序列圖如圖3所示。Myframe詳細類圖privateMarioMyFrame-allBg:Li£t<BackGround>-isStart:boclean-
6、mark>:Mario-noiABgiBatkGroLind-t:Thread+keyPressed(KeyEvent:void+keyReleesediKeyEvenfloid+keyTyped(KeyEvent)ryoid+pTtGzphicG):vciid+runO:voidmario;Mano-lifeiint-movingiint-showlrnaqeiBiufferedlrnaqe-uptime:int=Klnt-ysint*bg:BackGround*->corCrint»5tstusString*tThrced*xmow:intymtivc;int+dow
7、nO;voidJumpQivsid+l*ftMnv#0.WoirlfleftStopDevoidmi9111M口fu。:vuid+rightWtcipOx&d4run0rv日汨Enemy-bgiBstkGraund-buFFeredlmageiBufFeredlrnage-do>vnMax;int-imageType:int-isLeftOrVP;boolean-startlmageTypejnt-startlsLeftOrLlpiboalEan-startX:int-start,:int-type:int-upMsx:int-icint-ycint»t:7bread+
8、deadO:void+reSetQ:void+runQ:void+5tarMcv:voidObstructian-hg:BackGraLind-5hi<nxImage:BirfferedIrriage-£tartType:int-t:Thread-type:int-x:int-y:int+resetQ:woid+rur»QivoidBacIcGround*aIIEnemy:List<Enemy>-aIIObstruction:List<Obstruction>-hglmage:Buffcredimage-flagiboqlean-isDown:
9、booleanisOverboolednremoveEnemy:Listctnemy>-removeObnruction;List<0bstruttion>-Eorfcint+enemysStartMoveQn/oid+r«etQ:voidetScreenSize().width;intheight=().getScreenSize().height;(width-900)/2,(height-600)/2);(this);();(true);ize();i+)Obstructionob=().get(i);ize();i+)Obstructionob=().get
10、(i);ize();i+)Obstructionob=().get(i);if(3=()images/"+i+”.gif");)startimage=(newFile("./images/");bglmage=(newFile("./images/");endimage=(newFile("./images/");for(inti=1;i<=2;i+)(newFile(”./images/flower”+i+”.gif”);for(inti=1;i<=3;i+)(newFile(”./images/tr
11、iangle”+i+”.gif”);for(inti=1;i<=5;i+)(newFile("./images/Turtle"+i+”.gif”);for(inti=1;i<=4;i+)(newFile(”./images/stone”+i+".gif");)for(inti=1;i<=4;i+)(newFile("./images/pipe"+i+".gif");)for(inti=1;i<=2;i+)(newFile("./images/land"+i+”.gif&q
12、uot;);)(newFile("./images/");(newFile("./images/");)catch(Exceptione)();)4系統測試游戲開始界面的測試運行程序,成功后進入游戲歡迎界面,按空格開始游戲,程序測試界面如下圖所示:游戲運行的測試(1)障礙物場景測試,游戲運行截圖頁面如下:(2)敵人類測試,游戲運行頁面截圖如下:(3)障礙物與敵人測試,游戲場景圖如下:(4)3次生命用完,遇到障礙物死亡,運行界面截圖如下:(5)穿過所有障礙物,最后闖關成功,游戲頁面截圖如下:排除錯誤的處理編程是一個細致的工作,編程過程中的一個小小的錯誤都會
13、導致最終程序無法運行。此次編程過程中,在編寫的時候,整個代碼報錯量非常大,檢查了代碼的輸入,發現并沒有錯誤,后來通過一步步排除,發現是在最初在包里創建class的時候未選中publicstaticvoidmain(Stringargs)這個選項,后來重新創建class后復制原有的代碼,就沒有報錯了。除此之外,一般都是一些輸入的小錯誤,例如輸入的符號不是英文輸入法下的,又或者是語句最后遺漏了“;",eclipse是比較智能的軟件,哪一行有錯,哪里就有紅叉叉的標記,檢查起來也輕松很多。最后排除了所有問題后,終于運行成功。本次課程設計為期兩周,有多個題目可供選擇,剛開始我選擇的是管理系統,
14、也已經搜集和查閱了很多資料,但做到一半的時候發現代碼量不夠,一個投票管理系統的代碼只有四百多行,如果要加入新的功能的話,需要連接數據庫操作,而我對數據庫的操作掌握的不太好,所以臨時換成做java的小游戲。寫程序的過程中經常犯一些小錯誤,譬如分號掉了,或者沒有在英文的狀態下輸入等等,所以程序剛寫出來的時候出現了不少的錯誤,更改錯誤也浪費了很多時間。還有就是創建project和class的時候選擇了錯誤的選項,導致程序大面積的報錯,后來通過排除檢查后也修改了這些錯誤,最后所有的.java文件都沒有報錯之后,開始運行整個程序,運行成功并進行了測試。課程設計的創新部分在于,游戲中設計了一些很有意思的陷阱,玩家一步小心掉入陷阱,超級瑪麗就會死亡。這樣會給人意想不到的驚奇,達到娛樂大眾,增加游戲難度的效果。游戲的設計匠心獨具,并且都經過了各種測試,除了為玩家增加一些意想不到的游戲陷阱以外,還必須保證玩家能夠通關。課程設計的不足之處在于,設計的只是簡單的java小游戲,是單機游戲,場景的變換不夠豐富,所創造的障礙物和敵人也不如真實的大型游戲形象。需要進一步改進的地方在于,可以設置更多的關卡和障礙物,增加游戲的難度和趣味性。通過本次課程設計我學會了創建各種不同的類,也熟悉了寫程序的步驟,學習到了更多有關java
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高端煤機裝備項目發展計劃
- 2025年風電變流器柜體系統項目發展計劃
- 2025年大型重工裝備鑄件合作協議書
- 地下工程有毒有害氣體監測與安全監管合同
- 離婚賭博賠償協議書及房產分割協議
- 小紅書電商收益結算與推廣合同
- 電動汽車充電樁建設與電力需求側響應合作協議
- 學前教育幼兒管理
- 金融科技股權收益權質押合作開發合同
- 環保產品銷售與推廣服務合同
- 余華《活著》賞析ppt
- 第8章-GNSS測量與定位-課件
- 衛生院外傷處置方案
- 某地面工程電力安裝EC總承包工程技術文件
- 北汽昌河Q25-汽車使用手冊用戶操作圖示圖解詳解駕駛指南車主車輛說明書電子版
- 散流器送風氣流組織計算
- D500-D505 2016年合訂本防雷與接地圖集
- 念珠菌定植與藥物選擇
- 寧夏回族自治區社會保險變更登記表
- 幼兒園小小建筑師分享課件
- 物業承接查驗方案及查驗方法
評論
0/150
提交評論