資源描述:
《java課程設(shè)計(jì)小游戲》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、《高級語言程序設(shè)計(jì)》課程設(shè)計(jì)報告1、程序設(shè)計(jì)說明書【設(shè)計(jì)題目】雷霆行動游戲程序【問題描述】雷霆行動是一款供大家休閑娛樂的小游戲,游戲通過鼠標(biāo)控制我方飛機(jī)hero的移動,達(dá)到躲閃敵機(jī)的目的;利用鼠標(biāo)鍵發(fā)射子彈和導(dǎo)彈,達(dá)到擊毀敵機(jī)的目的,摧毀敵機(jī)有積分。此游戲?yàn)殛J關(guān)積分類小游戲?!拒浖δ堋?.按鼠標(biāo)左鍵,游戲開始。2.利用鼠標(biāo)移動控制hero自由移動,閃躲敵方子彈。3.利用鼠標(biāo)左鍵發(fā)射子彈,實(shí)現(xiàn)打中敵方飛機(jī)的功能;利用鼠標(biāo)右鍵釋放導(dǎo)彈,實(shí)現(xiàn)摧毀大量敵機(jī)的功能,擊中一個敵方飛機(jī)積一分。4.hero碰到對方子彈會消耗生命,消耗生命的多少,依據(jù)子彈的不同而不同。5.一關(guān)之后會進(jìn)
2、入下一關(guān)。6.游戲右上角紅色的進(jìn)度條表示hero的生命,當(dāng)紅色全部消失之后,游戲結(jié)束,顯示死亡。7.游戲結(jié)束后,可重新開始,同1?!舅惴ㄋ枷搿?.創(chuàng)建游戲主界面,確定窗口的坐標(biāo)。2.設(shè)計(jì)游戲開始界面顯示信息及信息坐標(biāo)。3.設(shè)置游戲進(jìn)行中的信息,hero的移動、釋放子彈和導(dǎo)彈,達(dá)到擊毀敵機(jī)的目的。4.處理游戲進(jìn)行中的子彈、大爆、爆炸、敵機(jī)消失和存在的條件。5.設(shè)置進(jìn)入下一關(guān)的條件。6.設(shè)計(jì)游戲結(jié)束界面顯示信息及信息坐標(biāo)。7.處理游戲重新開始滿足的條件。8.裝載圖像。9.對游戲進(jìn)行調(diào)試和改進(jìn),使這個游戲更加完善。【類的設(shè)計(jì)】本程序共有七個類:1.MainPanel屬性:BB
3、v為子彈數(shù)組,EEv為敵機(jī)數(shù)組,BOMBv為爆炸數(shù)組,EBv為敵機(jī)子彈數(shù)組,DBv為大爆數(shù)組,E-num為敵機(jī)數(shù)量,E-max敵機(jī)最大數(shù),E-vel為敵機(jī)速度,E-mov為敵機(jī)橫移幾率,E-hit為敵機(jī)開火幾率,Sum為擊毀敵機(jī)數(shù)量,hero-hp為hero生命,back至db-2均為圖片,tracker為媒體跟蹤器,y為背景滾動變量,seq為hero的動畫變量,isfire為hero開火,isblast為是否發(fā)爆,blastnum為大爆的數(shù)量,blastc為控制大爆,f、ff、s、ss均為游戲界面上顯示的信息;方法:MainPanel(Game)構(gòu)造方法,paint(
4、Graphics)建立游戲開始界面如顯示的文字,run()控制對象移動,BBmove(int,int)子彈的移動方法,DBmove(int,int)大爆的移動方法,mouseDragged(MouseEvent)鼠標(biāo)的拖拽用來保證hero不出界,mouseMoved(MouseEvent)鼠標(biāo)的移動用來控制hero移動,mousePressed(MouseEvent)鼠標(biāo)按鍵在組件上按下時調(diào)用,重新開始游戲,mouseClicked(MouseEvent)鼠標(biāo)按鍵在組件上單擊(按下并釋放)時調(diào)用,釋放子彈,mouseReleased(MouseEvent)鼠標(biāo)按鈕在組件
5、上釋放時調(diào)用,mouseEntered(MouseEvent)鼠標(biāo)進(jìn)入組件上調(diào)用,mouseExited(MouseEvent)鼠標(biāo)離開組件時調(diào)用;功能:游戲的開始、運(yùn)行、結(jié)束與重新開始。2.Game繼承JFrame屬性:x為游戲主界面的橫坐標(biāo),y為游戲主界面的縱坐標(biāo),pl為hero的子彈;方法:Game()創(chuàng)建游戲主界面,main(String[])主方法;功能:創(chuàng)建出游戲的主界面。3.Blast(大爆)屬性:x為大爆的橫坐標(biāo),y為大爆的縱坐標(biāo),cont為數(shù)量,islive為hero存活;方法:Blast(int,int)建立大爆的坐標(biāo),grow()構(gòu)造方法;功能:構(gòu)
6、造一個大爆(導(dǎo)彈爆炸)的類。4.Bomb(爆炸)屬性:x為爆炸的橫坐標(biāo),y為爆炸的縱坐標(biāo),cont為數(shù)量,islive為hero存活;方法:Bomb(int,int)建立爆炸的坐標(biāo),grow()構(gòu)造方法;功能:構(gòu)造一個爆炸(子彈擊中敵機(jī))的類。5.Enemy(敵機(jī))屬性:x為敵機(jī)的橫坐標(biāo),y為敵機(jī)的縱坐標(biāo),vx敵機(jī)數(shù)組的橫坐標(biāo),vy為敵機(jī)數(shù)組的縱坐標(biāo),r為敵機(jī)橫移幾率,f為敵機(jī)開火幾率,toleft為向左移動敵機(jī),toright為向右移動敵機(jī);方法:Enemy(int,int,int,int)建立敵機(jī)的坐標(biāo),move(int)實(shí)現(xiàn)敵機(jī)的移動,tofire()敵機(jī)釋放子彈
7、,hit(int,int)敵機(jī)的子彈攻擊hero,hitblast(int,int)子彈產(chǎn)生爆炸;功能:構(gòu)造一個敵機(jī)的類,實(shí)現(xiàn)敵機(jī)的移動。6.EnemyBullet(敵機(jī)子彈)屬性:x、y為敵機(jī)子彈的坐標(biāo),vx、vy為敵機(jī)子彈數(shù)組的坐標(biāo);方法:move()實(shí)現(xiàn)敵機(jī)子彈的移動,hit(int,int)敵機(jī)子彈攻擊hero;功能:構(gòu)造一個敵機(jī)子彈的類,實(shí)現(xiàn)敵機(jī)子彈的移動和攻擊。7.PlayerBullet(hero子彈)屬性:x、y為hero子彈的坐標(biāo),v為hero子彈的速度;方法:move()實(shí)現(xiàn)hero子彈的移動,hit(int,int)