超級瑪麗--Java課程設(shè)計_第1頁
超級瑪麗--Java課程設(shè)計_第2頁
超級瑪麗--Java課程設(shè)計_第3頁
超級瑪麗--Java課程設(shè)計_第4頁
超級瑪麗--Java課程設(shè)計_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο蟪绦蛟O(shè)計課程設(shè)置修訂報告課題:超級瑪麗軟件的設(shè)定修訂與實現(xiàn)醫(yī)院(本科): 信息科學工程學院專業(yè)班:計算機科學和技術(shù)1201班學生名稱:程偉學號: 20121183011指導教師:吳奕20 14年12月29日至20 15年1月9日華中科技大學武昌分校制面向?qū)ο缶幊陶n程設(shè)置修訂任務(wù)書一、設(shè)計(調(diào)查報告/論文)主題超級瑪麗軟件的設(shè)定修訂與實現(xiàn)二、設(shè)訂(調(diào)查報告/論文)的主要內(nèi)容內(nèi)容:開發(fā)超級瑪麗后,可以在場景中執(zhí)行各種動作,具有場景切換功能。 修訂Mario類、場景類、敵人類、障礙物類。 實現(xiàn)有一定挑戰(zhàn)的休閑單人游戲?;竟δ芎鸵螅涸O(shè)計超級瑪麗游戲,實現(xiàn)以下功能:1、點擊“空格”,可以讓角

2、色跳躍。2 .單擊方向鍵的左右,可以使角色前進或后退。 的雙曲馀弦值。3 .設(shè)置障礙物,提高游戲難度。4 .設(shè)訂敵類,提高游戲難易度。5 .設(shè)置修訂跳躍可以踩到敵人,越過障礙物,保證正常前進。6 .保證在通過一切障礙后能夠報關(guān)。三、原始資料1. 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計指導書2 .耿祥義. JAVA大學實用教程.北京:清華大學出版社,2009四、所要求的設(shè)置修訂(調(diào)查/論文)的成果1 .課程設(shè)置修訂報告2 .課程設(shè)定修訂軟件五、進程調(diào)度布置任務(wù),數(shù)據(jù)檢索,需求分析1天整體設(shè)計一天詳細設(shè)定修訂1.5天制定源程序?qū)崿F(xiàn)3.5天一天的測試和變更做兩天的課程設(shè)定報告六、主要參考資料1張廣彬. Java課

3、程設(shè)置修訂案精編(第二版).北京:清華大學出版社,20112庚祥義. Java課程設(shè)訂(第二版).北京:清華大學出版社,20083耿祥義. JAVA大學實用教程.北京:清華大學出版社,2009 .4鄒林達.陳國君Java2程序設(shè)訂基礎(chǔ).北京:清華大學出版社,20105鄒林達. Java2程序設(shè)置修訂基礎(chǔ)實驗指導.北京:清華大學,2010指導教師(簽名):二十年月日目錄1需求和總體設(shè)定修訂51.1需求分析51.2程序功能圖51.3程序類圖62詳細設(shè)定修訂7實現(xiàn)2.1 my框架72.1.1表單對象的序列圖72.1.2 my框架詳細等級圖82.2 Mario實現(xiàn)82.2.1 Mario對象的順序圖8

4、2.2.2 Mario等級圖92.3實現(xiàn)能源級102.4實現(xiàn)obstruction級112.5后臺類的實現(xiàn)113編碼實現(xiàn)123.1 MyFrame級的詳細代碼123.2后臺類的詳細代碼133.3 Mario類的詳細代碼163.4 Enemy類的詳細代碼243.5 Obstruction類的詳細代碼314系統(tǒng)測試334.1游戲開始畫面的測試334.2游戲執(zhí)行的測試334.3排除錯誤的處理36總結(jié)371需求和總體設(shè)定修訂1.1需求分析提供使用方便、使用方便的接口。 游戲有困難和娛樂性。 開發(fā)Mario班級。 一個場景類,敵人類,障礙物類。 使超級瑪麗能夠在場景中執(zhí)行各種動作。 還有場景切換等功能。

5、 游戲中設(shè)有有趣的陷阱,玩家一步一步小心掉進陷阱,超級瑪麗就會死。 這會帶來意外的驚喜,達到使大眾高興,提高游戲難易度的效果。 在游戲設(shè)計上下功夫,經(jīng)過各種測試,除了給玩家增加意想不到的游戲陷阱外,還要保證玩家能夠報關(guān)。1.2程序功能圖如圖1所示圖11.3程序類圖系統(tǒng)的整體類圖的框架如圖2所示。 首先是表單類。 他必須給Mario和BackGround類調(diào)用方法。 動態(tài)顯示Mario類和后臺。 BackGround包含Enemy和Obstruction。 Enemy、Obstruction和Mario類調(diào)用靜態(tài)類StaticValue的方法以顯示實際圖像。 靜態(tài)值是一個靜態(tài)類,可以將存儲在硬盤

6、上的圖像資源加載到內(nèi)存中,并由其他模塊調(diào)用。圖22詳細設(shè)定修訂2.1 my框架的實現(xiàn)2.1.1表單對象的序列圖窗體對象繼承了JFrame類,并實現(xiàn)了Runnable接口。 作為表單對象,首先顯示表單,然后繪制背景。 然后啟動線程。 run方法動態(tài)繪制Mario圖像、障礙物圖像和敵人圖像,這些圖像必須在表單中顯示。 此窗體的run方法為死循環(huán),每次執(zhí)行循環(huán)調(diào)用sleep方法時休眠50毫秒。 序列圖如圖3所示。圖32.1.2 my框架詳細類圖私人馬里奧馬里o; /Mario對象隱私布爾開始=假; /指示游戲是否已經(jīng)開始this.paintAllEnemys(g2); /描繪所有的敵人所有繪圖對象(

7、g2); /畫出一切障礙物2.2 Mario的實施2.2.1 Mario對象的順序圖因為需要專門的線程來實時監(jiān)視Mario的移動狀況、障礙物和與敵人的沖突狀況。 所以讓Mario類繼承了Runnable接口。 Mario首先啟動線程。 此線程的run方法也是死循環(huán)。 首先,根據(jù)Mario的狀態(tài)changeMarioImage方法修改Mario的顯示圖像。 根據(jù)Mario的determinexy方法決定Mario的移動。 并且,通過deterMarioWithObstruction法檢測Mario和障礙物的碰撞,通過MarioTouchEnemys法檢測Mario和敵人的碰撞。 然后調(diào)用slee

8、p ()方法使線程休息5毫秒。 就這樣結(jié)束一個循環(huán)。 序列圖如圖4所示。圖42.2.2 Mario類圖在類圖中:隱私入侵x; /Mario的x坐標隱私權(quán); /Mario的y坐標隱私生活; /Mario的生命后臺BG=空; /Mario存在的背景隱私正常運行時間; /Mario的啟動時間字符串狀態(tài); /Mario的移動狀態(tài)英尺; /Mario的分數(shù)反射t; /Mario執(zhí)行緒int x移動; /Mario的x移動距離在移動; /Mario的y移動距離隱私布爾清除=假; /識別用戶是否報關(guān)。 isClear為true時代表用戶通關(guān)2.3能源級的實現(xiàn)隱私入侵x; /敵人的x坐標隱私權(quán); /敵人的y坐

9、標隱私地啟動; /敵人的初始x坐標隱私啟動; /敵人的初始y坐標私有布爾啟動反應(yīng)堆;私有布爾啟動反應(yīng)堆; /敵人的初期移動方向隱私啟動時間類型; /初始顯示圖像隱私入侵類型; 敵人的類型1是蘑菇,2是食人族,3是烏龜私有bufferedimagebufferedimage;隱私背景BG; /有障礙物的背景隱私圖像類型; /移動的界限范圍詳細的類圖如下所示2.4 Obstruction類的實現(xiàn)隱私入侵x; /障礙物的x坐標隱私權(quán); /障礙物的y坐標privatebufferedimageshowimage=空值; /障礙物的顯示圖像隱私入侵類型; /障礙物的類型隱私啟動類型; /障礙物的初始類型

10、隱私背景BG; /識別該障礙物位于哪個場景詳細的類圖如下所示2.5后臺類的實現(xiàn)隱私入門; /背景序列號私有布爾標志;/識別是否是最后一個圖像,如果flag為true則表示最后一個圖像隱私布爾is over=假; /表示游戲是否結(jié)束私人布爾下載=假; /旗幟是否會降旗結(jié)束詳細的類圖如下所示3編碼實現(xiàn)原始碼導入Java.awt.image .緩沖圖像;導入Java.util.ArrayList;導入Java.util.list;導入Java.awt .圖形;導入Java.awt .工具包;導入Java.awt.event.keyevent;導入Java.awt .事件.密鑰列表器。導入Java.u

11、til .迭代器;導入javax.swing.jframe;導入javax.swing.joptionpane;導入Java.io .文件;導入javax.imageio.imageio;publicclassmyframeextendsjframeimplementskeylistener,運行狀態(tài)。publicstaticvoidmain (字符串 args )。新我的幀();是私人列表所有BG=新陣列();/現(xiàn)在的背景私人背景新BG=空;私人馬里奧馬里o; /Mario對象隱私布爾開始=假; /指示游戲是否已經(jīng)開始publicvoidsetnowbg (backgroundnowbg )

12、 。新的BG=新的BG;是隱私領(lǐng)袖t;/*/公共我的框架()。this.setsize (900,600 );this.setTitle (馬里奧游戲 );this.setdefaultcloseoperation (jframe.exit _ on _ close ) :intwidth=toolkit.getdefaulttoolkit () .獲得屏幕大小().width;int height=toolkit.getdefaulttoolkit ().get屏幕大小().height;設(shè)置位置(寬- 900 )/2、(高- 600 )/2 ) :新聞監(jiān)聽器(this );靜態(tài)值. init ();設(shè)置可視性(true );/描繪所有背景for (英寸=1; i=4; 一)。新的背景(I,i=4)? 真3360假);是是否正確,是否正確(0)。新馬里奧(0,480 );我是瑪麗歐.斯特伯格(now BG );可重復使用(假);t=新天線(this );t .開始();是復蓋率公共語音畫面(圖形g )。緩沖映像=新緩沖映像(900、600、緩沖映像. type _4byte _ abgr );國際航空運輸協(xié)會。graphics g2=圖形. get圖形();g2.德拉威瑪(this.now BG.get bgimage ()、0、0、this ); /畫背景g

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論