版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、綜合課程設(shè)計(jì)報(bào)告題目: 馬里奧游戲班級(jí):xxxxxxxx姓名:xxxxxxxxx學(xué)號(hào):xxxxxxxxx指導(dǎo)教師: xxxx完成日期: xx年 xx月 xx日 1、 設(shè)計(jì)內(nèi)容 程序面向?qū)ο笤O(shè)計(jì) :馬里奧對(duì)象,敵人對(duì)象,障礙物對(duì)象,場(chǎng)景對(duì)象,窗體對(duì)象,圖片以及音樂(lè)對(duì)象等等。歐陽(yáng)茂: 1)游戲操作:玩家操作游戲方法 2)障礙物的開(kāi)發(fā):開(kāi)發(fā)游戲中的障礙物 3)馬里奧主角的開(kāi)發(fā) :開(kāi)發(fā)馬里奧主角 4)馬里奧與障礙物 :開(kāi)發(fā)馬里奧遇到障礙物的不同狀態(tài) 5)敵人的開(kāi)發(fā) :不同敵人類的開(kāi)發(fā),包括三角怪,食人花 6)敵人與馬里奧:馬里奧遇到不同敵人的狀態(tài)劉金鳳: 1)美工設(shè)計(jì):圖片美化,游戲體驗(yàn)度 2)窗體類
2、的設(shè)計(jì):將游戲顯示到界面 3)開(kāi)發(fā)游戲場(chǎng)景:開(kāi)發(fā)游戲的背景或者游戲環(huán)境 4)通關(guān)開(kāi)發(fā):馬里奧通過(guò)當(dāng)前進(jìn)入下一個(gè)通關(guān) 5)其他:計(jì)分,生命,音樂(lè),時(shí)間的設(shè)定 二、設(shè)計(jì)目標(biāo)開(kāi)始游戲時(shí),Mario 會(huì)有3條生命,消滅敵人或頂一些物品可以得到分?jǐn)?shù), 每到500分會(huì)增加一條生命,如果Mario 被敵人殺死或是掉下懸崖,會(huì)失去 一條生命,并從該版面重新開(kāi)始游戲,如果Mario 的生命數(shù)為0,則游戲結(jié)束,返回標(biāo)題畫(huà)面重新開(kāi)始游戲。設(shè)計(jì)中的基本要求: 1) 完成游戲人物的基本動(dòng)作,上下左右,跳躍等 2) 完成障礙物和敵人類的操作以及不同的設(shè)定 3) 完成通關(guān)以及每一個(gè)關(guān)的障礙物和場(chǎng)景都不一樣 4) 完成游戲人
3、物的聲明和加分問(wèn)題 5) 完成游戲時(shí)間的設(shè)定,游戲的開(kāi)始和結(jié)束設(shè)計(jì)中的更高要求: 1) 游戲運(yùn)行流暢,用戶體驗(yàn)好 2) 游戲盡量考慮內(nèi)存資源合理利用 3) 游戲畫(huà)面美觀,不同的通關(guān)難以程度不同 4) 游戲能夠具有足夠的吸引力 三、需求分析游戲行業(yè)火爆近十年,尤其是網(wǎng)絡(luò)游戲的勢(shì)頭非常的猛,已經(jīng)成為很多年輕人不可或缺的娛樂(lè)工具。據(jù)報(bào)告指出,游戲行業(yè)市場(chǎng)已經(jīng)是我們最有活力的行業(yè),互聯(lián)網(wǎng)和寬帶的普及也進(jìn)一步的加快了游戲行業(yè)的發(fā)展。特別是2014年,隨著4g的到來(lái),相信游戲行業(yè)將進(jìn)一步的加快發(fā)展。中國(guó)網(wǎng)絡(luò)游戲打的增勢(shì)不減,市場(chǎng)巨大:在中國(guó),每年新增網(wǎng)民超過(guò)5000w,市場(chǎng)巨大。專家認(rèn)為,網(wǎng)絡(luò)游戲定位于大
4、眾化娛樂(lè),收費(fèi)低廉,內(nèi)容豐富,有利于緩解人們因?yàn)楣ぷ鲗W(xué)習(xí)緊張或者經(jīng)濟(jì)不景氣造成的心理壓力。另外,我們游戲行業(yè)上市的公司或者擬上市公司,資金充足。由此來(lái)看,游戲行業(yè)必然會(huì)在未來(lái)更加的突破。預(yù)計(jì)2014年的細(xì)分市場(chǎng)份額占比仍將保持在70%左右,但是由于端游市場(chǎng)處于高位滯漲狀態(tài),增速緩慢,并且還受到頁(yè)游和移動(dòng)端游快速發(fā)展所帶來(lái)的沖擊,今后端游市場(chǎng)份額將進(jìn)一步被縮小。而隨著游戲娛樂(lè)時(shí)間碎片化價(jià)值的不斷提高,一些策略、益智、休閑類的輕游戲同樣吸引了大量可支配游戲時(shí)間相對(duì)較少,但付費(fèi)能力較強(qiáng)的上班族玩家的青睞,這也為網(wǎng)頁(yè)游戲發(fā)展提供了強(qiáng)勁的增長(zhǎng)動(dòng)力,一些傳統(tǒng)端游企業(yè)甚至其他互聯(lián)網(wǎng)企業(yè)紛紛進(jìn)入網(wǎng)頁(yè)游戲市場(chǎng)。
5、hSn中國(guó)行業(yè)咨詢網(wǎng)_行業(yè)報(bào)告_行業(yè)分析_市場(chǎng)調(diào)研_第三方市場(chǎng)數(shù)據(jù)提供商hSn中國(guó)行業(yè)咨詢網(wǎng)_行業(yè)報(bào)告_行業(yè)分析_市場(chǎng)調(diào)研_第三方市場(chǎng)數(shù)據(jù)提供商 在移動(dòng)游戲方面,由于行業(yè)進(jìn)入門(mén)檻較低,移動(dòng)游戲生命周期較短,這就為許多創(chuàng)業(yè)型中小企業(yè)快速壯大提供了廣闊的前景和機(jī)遇。隨著,移動(dòng)端游戲質(zhì)量品質(zhì)的不斷提高,移動(dòng)端游戲市場(chǎng)的成長(zhǎng)即將進(jìn)入快速上升通道。未來(lái),頁(yè)游和端游的細(xì)分市場(chǎng)份額占比將逐年擴(kuò)大。hSn中國(guó)行業(yè)咨詢網(wǎng)_行業(yè)報(bào)告_行業(yè)分析_市場(chǎng)調(diào)研_第三方市場(chǎng)數(shù)據(jù)提供商 hSn中國(guó)行業(yè)咨詢網(wǎng)_行業(yè)報(bào)告_行業(yè)分析_市場(chǎng)調(diào)研_第三方市場(chǎng)數(shù)據(jù)提供商 2013年第一季度中國(guó)移動(dòng)游戲市場(chǎng)規(guī)模達(dá)到24.3億元,環(huán)比增長(zhǎng)率
6、為9.3%;其中智能機(jī)移動(dòng)游戲市場(chǎng)規(guī)模為7.9億元,環(huán)比增長(zhǎng)率為20.9%。在移動(dòng)單機(jī)游戲方面,市場(chǎng)上主要還是以休閑類、棋牌類的游戲?yàn)橹?,游戲的?huà)面質(zhì)量在不斷提高,未來(lái)將會(huì)有更多制作精良的單機(jī)大作出現(xiàn);在移動(dòng)網(wǎng)絡(luò)游戲方面,我叫MT Online、大掌門(mén)等卡牌類移動(dòng)網(wǎng)絡(luò)游戲受到市場(chǎng)高度關(guān)注,社交競(jìng)技元素吸引了大批用戶,智能機(jī)移動(dòng)網(wǎng)游在2014年可能迎來(lái)大爆發(fā)。hSn中國(guó)行業(yè)咨詢網(wǎng)_行業(yè)報(bào)告_行業(yè)分析_市場(chǎng)調(diào)研_第三方市場(chǎng)數(shù)據(jù)提供商以下為統(tǒng)計(jì)數(shù)據(jù): 圖1 同類游戲下載量 圖2 上半年銷售額增長(zhǎng)率 圖3游戲行業(yè)細(xì)分段 圖4游戲行業(yè)規(guī)模增長(zhǎng)數(shù)據(jù) 圖5 玩家群 圖6 同類游戲下載量2四、設(shè)計(jì)思想4.1程
7、序面向?qū)ο笤O(shè)計(jì)馬里奧對(duì)象,敵人對(duì)象,障礙物對(duì)象,場(chǎng)景對(duì)象,窗體對(duì)象,圖片以及音樂(lè)對(duì)象如下: 圖7 完整馬里奧圖主要類: 圖8 主要設(shè)計(jì)類主要完成功能: 圖9 主要功能模塊4.2 窗體的設(shè)計(jì)窗體是馬里奧游戲的主要界面,其設(shè)計(jì)主要包括主要界面的大小,及位置選擇。標(biāo)題,布局等界面屬性方面的內(nèi)容。其中窗體設(shè)計(jì)中有一個(gè)重要的靜態(tài)屬性的設(shè)計(jì),即把游戲中的圖片進(jìn)行靜態(tài)的初始化,其設(shè)計(jì)類為:(MyFrame)。將游戲中的主角:馬里奧圖片,場(chǎng)景以及背景圖片,敵人食人花,敵人三角怪,障礙物,等需要的圖片進(jìn)行屬性的保存,通過(guò)io流保存到集合中。以方便取出來(lái),保存到類中(staticValue)。 圖10 初始窗體圖
8、4.3開(kāi)發(fā)游戲場(chǎng)景 場(chǎng)景是馬里奧游戲之中最難控制的一塊內(nèi)容,因?yàn)橐粋€(gè)馬里奧游戲里面有多個(gè)通關(guān),而且每一次的通過(guò),里面的敵人和障礙物等的位置都是不一樣的。游戲設(shè)計(jì)越復(fù)雜,那么場(chǎng)景的控制就越難。本次場(chǎng)景的通過(guò)一個(gè)場(chǎng)景類(background)完成,設(shè)計(jì)主要包括:屬性的設(shè)計(jì):1) 背景圖片的設(shè)計(jì),即每一個(gè)場(chǎng)景的背景圖片2) int類型保存場(chǎng)景所在位置(場(chǎng)景的順序)3) Boolean類型判斷當(dāng)前場(chǎng)景是否為最后一個(gè)場(chǎng)景,如果是最后一個(gè)場(chǎng)景,那么結(jié)束后游戲結(jié)束4) 場(chǎng)景中的障礙物和敵人,使用兩個(gè)集合來(lái)進(jìn)行保存。一個(gè)集合保存已經(jīng)消滅的敵人和障礙物,另一個(gè)集合保存未被消滅的敵人和障礙物行為的設(shè)計(jì):1) 將所
9、有的屬性進(jìn)行初始化,包括背景圖片,場(chǎng)景順序,標(biāo)志。(構(gòu)造方法中初始化)2) 敵人和障礙物根據(jù)游戲的狀態(tài)(是人物完全死亡,還是暫時(shí)死亡)操作死亡集合或者生存集合(新建立一個(gè)重置方法)4.4 障礙物的開(kāi)發(fā) 障礙物是游戲中的問(wèn)號(hào),磚塊,綠色框部分,其為馬里奧游戲中的重要組成部分包含的屬性: 1)障礙物在場(chǎng)景中的坐標(biāo)(x,y) 2)顯示的圖片 3)類型(不同的障礙物)4) 初始類型(即障礙物初始的狀態(tài),與遇到馬里奧之后的狀態(tài)相對(duì))行為方法:1) 重置障礙物的方法(即當(dāng)馬里奧死亡之后,但生命次數(shù)還未完全用完,那么當(dāng)馬里奧重生的時(shí)候,需要要將障礙物和敵人重置)2) 當(dāng)障礙物遇到馬里奧時(shí),改變相應(yīng)的圖片3)
10、 初始化障礙物信息的構(gòu)造方法4.5將障礙物添加到場(chǎng)景中去障礙物類(obstruction)中擁有障礙物的屬性,而場(chǎng)景(background)中的障礙物和敵人,使用兩個(gè)集合來(lái)進(jìn)行保存。因此可以通過(guò)集合來(lái)保存各個(gè)障礙物在場(chǎng)景中的位置和狀態(tài)。比如:添加一張北京圖片到場(chǎng)景之中,將磚塊,問(wèn)號(hào),綠皮按照障礙物的位置放到對(duì)應(yīng)的位置中去。當(dāng)然,場(chǎng)景類應(yīng)該判斷當(dāng)前的場(chǎng)景是屬于第一個(gè)場(chǎng)景還是其他場(chǎng)景,而初始化不同的障礙物位置。繪圖類(Maframe)主要用于圖像的顯示,將場(chǎng)景中的一切障礙物繪制到界面上去。因此保留有一個(gè)場(chǎng)景(background)類的一個(gè)對(duì)象。通過(guò)這個(gè)對(duì)象通過(guò)paint方法繪制到窗口中去。其中:背
11、景圖片從坐標(biāo)(0,0)開(kāi)始繪制并充滿整個(gè)屏幕,而其他障礙物通過(guò)取得北京中的坐標(biāo)(x,y)來(lái)獲得繪制的位置。如下圖(紅色部分均為障礙物) 圖11:障礙物添加到場(chǎng)景圖4.6馬里奧主角的開(kāi)發(fā)1) 馬里奧主角的開(kāi)發(fā),實(shí)際上與障礙物的開(kāi)發(fā)類似,也是創(chuàng)建一個(gè)對(duì)象(mario)作為操作馬里奧的對(duì)象,而且馬里奧與圖片一樣也有相應(yīng)的一些屬性和方法。最基本的有2)屬性: 坐標(biāo)(X,Y) 移動(dòng)速度(xmove,ymove) 跳躍速度(jump,down) 跳躍時(shí)間 馬里奧人物圖片 馬里奧狀態(tài)(這個(gè)指馬里奧處于向左,向右或者是跳躍狀態(tài)) 馬里奧移動(dòng)速度的屬性(默認(rèn)為0,當(dāng)移動(dòng)的時(shí)候改變速度) 馬里奧生命次數(shù) 分?jǐn)?shù)3)
12、方法: 移動(dòng)(向左,向右) 停止(向左,向右) 跳躍(在地面或者障礙物上面可以跳躍,否則不能跳躍)4)跳躍的馬里奧狀態(tài)處理:馬里奧跳躍的時(shí)候分為兩種情況,一種是點(diǎn)擊跳躍鍵在空中,一種是離開(kāi)障礙物掉落到空中。在這里考慮的因素很多,在跳躍的時(shí)候可以進(jìn)行向左或者向右方向的控制,但是當(dāng)已經(jīng)在空中的時(shí)候卻不能再進(jìn)行控制跳躍問(wèn)題了,并且在跳躍過(guò)程中還有相關(guān)的馬里奧圖片的切換。 4) 其他處理: 馬里奧是一個(gè)動(dòng)態(tài)的角色,因此在他移動(dòng)或者停止的時(shí)候,都應(yīng)該有不同的狀態(tài),即有不同的圖片與之對(duì)應(yīng)。并且要區(qū)分是向左還是向右。 圖12 馬里奧狀態(tài)圖4.7 將馬里奧對(duì)象加入到窗體之中 1)和障礙物添加類似,將馬里奧繪制
13、到窗體之中,但是因?yàn)轳R里奧是動(dòng)態(tài)的,因此需要添加兩個(gè)線程,如下: 2)添加線程一:因?yàn)轳R里奧移動(dòng)的時(shí)候可能是一直進(jìn)行的,(mario)類必須實(shí)現(xiàn)一個(gè)線程專門(mén)為馬里奧這個(gè)角色服務(wù),一直改變馬里奧的坐標(biāo)。 3)添加線程二:馬里奧角色的狀態(tài)在一直改變,因此需要同步的刷新,即同步的改變馬里奧在窗體中的圖片。 圖13 怪物與障礙物4.8 將馬里奧角色與障礙物進(jìn)行設(shè)置 1)障礙物(obstruction)與馬里奧(mario)的關(guān)系是,都是在場(chǎng)景之中的,因此要設(shè)置馬里奧與障礙物之間的聯(lián)系與沖突就必須使用場(chǎng)景來(lái)作為中間橋梁。因此,在馬里奧(mario)對(duì)象之中創(chuàng)建一個(gè)場(chǎng)景屬性,以便于操作場(chǎng)景中的障礙物與馬里
14、奧之間的關(guān)系。2)橫向阻擋:障礙物與馬里奧之間的沖突和聯(lián)系主要是使用坐標(biāo)來(lái)進(jìn)行設(shè)置,解釋為:當(dāng)馬里奧處于哪個(gè)區(qū)域可以活動(dòng),處于哪個(gè)區(qū)域不可以活動(dòng)。(遇到障礙物和在邊界時(shí)移動(dòng)都會(huì)受到限制)3)縱向阻擋: 在地面或者障礙物上面可以跳躍,否則不能跳躍。因此在縱向馬里奧仍然有一個(gè)活動(dòng)范圍。4)當(dāng)馬里奧越到障礙物的時(shí)候,障礙物響應(yīng)狀態(tài)的改變問(wèn)題。比如:當(dāng)從下往上撞到問(wèn)號(hào)時(shí),那么問(wèn)號(hào)則變?yōu)殍F塊,而以這種方式撞到磚塊的時(shí)候,磚塊消失。這里也涉及到障礙物與馬里奧活動(dòng)范圍的問(wèn)題。4.9 切換場(chǎng)景: 當(dāng)馬里奧移動(dòng)到屏幕的最右端,需要將當(dāng)前場(chǎng)景,切換為下一個(gè)場(chǎng)景。繪制各個(gè)場(chǎng)景。當(dāng)馬里奧移動(dòng)到最右端的時(shí)候,就立即進(jìn)行
15、場(chǎng)景的切換。4.10 敵人的開(kāi)發(fā):1)馬里奧游戲中有各種不同的敵人,并且各種敵人的移動(dòng)方式和移動(dòng)范圍都有不同,因此在定義敵人類的時(shí)候也需要一定的屬性和方法,如下:2)屬性:坐標(biāo):(x ,y)初始坐標(biāo):(x,y)類型:即敵人類型顯示的圖片:敵人類的圖片移動(dòng)方向:不同的敵人有不同的移動(dòng)方向最大移動(dòng)坐標(biāo):敵人的移動(dòng)范圍3) 行為:重置方法:當(dāng)重置場(chǎng)景的時(shí)候。(就是對(duì)場(chǎng)景中的兩種結(jié)合的刪除,添加操作)死亡:地人類被消滅線程:同馬里奧一樣,也需要實(shí)現(xiàn)一個(gè)單獨(dú)的線程來(lái)實(shí)現(xiàn)敵人類的行為。但是與馬里奧不同的是敵人的移動(dòng)是在固定的位置進(jìn)行的移動(dòng),不需要添加 上下左右的行為,而是自動(dòng)的進(jìn)行的移動(dòng)操作。 圖14 馬
16、里奧與敵人4.11 敵人放到場(chǎng)景之中: 1)將敵人類添加到對(duì)應(yīng)的場(chǎng)景(background)之中,即將各種敵人放到(background)的敵人類集合之中。同時(shí)在(mainframe)中通過(guò)敵人類不同的坐標(biāo)繪制圖像。 2)與馬里奧一樣,敵人類也有自己的移動(dòng)狀態(tài),因此需要根據(jù)敵人的行為進(jìn)行圖片的切換。并且在mframe中進(jìn)行不斷刷新,與敵人的移動(dòng)速度一致。 圖15 敵人三角怪 圖16 敵人食人花 4.12敵人與馬里奧: 敵人類與馬里奧的關(guān)系就是一個(gè)相互攻擊的關(guān)系。對(duì)于不同的敵人,馬里奧也會(huì)有不同的狀態(tài)。對(duì)于三角怪,當(dāng)馬里奧與三角怪橫向碰撞的時(shí)候,馬里奧必然會(huì)失去一條生命,但是當(dāng)在縱向碰撞的時(shí)候敵
17、人會(huì)死亡。而對(duì)于食人花,不管馬里奧與食人花以怎樣的形式碰撞都會(huì)失望。 敵人與馬里奧的判斷,跟障礙物與馬里奧判斷類似。而不同的是敵人是移動(dòng)的。因此通過(guò)(mario)類中的場(chǎng)景對(duì)象,可以對(duì)敵人的狀態(tài)進(jìn)行控制,判斷敵人當(dāng)前的與馬里奧的相對(duì)情況。而做出不同的結(jié)果判斷。4.13馬里奧死亡的解釋: 馬里奧的死亡可能是由于與三角怪橫向碰撞,也可能是與食人花縱向碰撞,也可能是走進(jìn)了地面的漏洞之中。 4.14其他游戲相關(guān): 分?jǐn)?shù)的屬性是放在(mario)類中的,因此通過(guò)馬里奧殺的敵人數(shù)和頂?shù)膯?wèn)號(hào)或者磚塊數(shù)進(jìn)行分?jǐn)?shù)的增加或者不變,跟著馬里奧主角的變化而變化。而當(dāng)馬里奧死亡之后,分?jǐn)?shù)需要重置。 馬里奧的聲明次數(shù)只有
18、三次,因此,可以通過(guò)馬里奧的屬性進(jìn)行記錄。當(dāng)馬里奧死亡一次之后,敵人和磚塊都需要重置,分?jǐn)?shù)也需要重置 時(shí)間是由馬里奧屬性控制,一直跟著瑪麗奧的開(kāi)始,當(dāng)聲明結(jié)束一次的時(shí)候,重置。當(dāng)一關(guān)花了太多的時(shí)間的時(shí)候,那么就結(jié)束或者當(dāng)闖關(guān)完全就結(jié)束。而結(jié)束的時(shí)候僅僅設(shè)置一個(gè)標(biāo)志。當(dāng)?shù)竭_(dá)這個(gè)標(biāo)志的時(shí)候就結(jié)束后。 圖17分?jǐn)?shù) 時(shí)間 生命圖 圖18 馬里奧開(kāi)始5、 具體實(shí)現(xiàn)5.1馬里奧類的具體實(shí)現(xiàn) 馬里奧主角的開(kāi)發(fā),實(shí)際上與障礙物的開(kāi)發(fā)類似,也是創(chuàng)建一個(gè)對(duì)象(mario)作為操作馬里奧的對(duì)象,而且馬里奧與圖片一樣也有相應(yīng)的一些 屬性和方法。public class Mario implements Runnabl
19、e private int x = 0; /移動(dòng)坐標(biāo)private int y = 490;private int width = 60; /馬里奧占用范圍private int height = 60;private BufferedImage nowImage = null; /馬里奧圖片集合private int xmove = 0; /移動(dòng)速度private int ymove = 0;private String status = "right - standing"private boolean inLand = true; /是否著陸判斷private int
20、 movingImg = 0; /移動(dòng)標(biāo)志private int upFlag = 0; /是否在空中標(biāo)志private int airTime = 0; /在空中時(shí)間private Thread t = new Thread(this); /馬里奧線程private boolean leftFlag = true; /向左移動(dòng)標(biāo)志private boolean rightFlag = true;/向右移動(dòng)標(biāo)志private BackGround bg = null; /當(dāng)前場(chǎng)景private boolean deadFlag = false; /死亡標(biāo)志private int score =
21、 0; /分?jǐn)?shù)private int life = 3; /生命private int oldLifeFlag = 0; /是否超時(shí)private boolean winFlag = false;/是否勝利.5.2 馬里奧移動(dòng)代碼 馬里奧是一個(gè)動(dòng)態(tài)的角色,因此在他移動(dòng)或者停止的時(shí)候,都應(yīng)該有不同的狀態(tài),即有不同的圖片與之對(duì)應(yīng)。并且要區(qū)分是向左還是向右。下面是具體的移動(dòng)代碼。與以上的屬性相對(duì)應(yīng)public void moveLeft() /向左移動(dòng)if (leftFlag) xmove = -5;if (status.indexOf("jumping") != -1) sta
22、tus = "left - jumping" else status = "left - moving"public void moveRight() /向右移動(dòng)if (rightFlag) xmove = 5;if (status.indexOf("jumping") != -1) status = "right - jumping" else status = "right - moving"public void stopLeft() /向左停止xmove = 0;if (status.i
23、ndexOf("jumping") != -1) status = "left - jumping" else status = "left - standing"movingImg = 1;public void stopRight() /向右停止xmove = 0;if (status.indexOf("jumping") != -1) status = "right - jumping" else status = "right - standing"movingImg
24、 = 1;public void jump() /跳躍if (status.indexOf("jumping") = -1) if (status.indexOf("right") != -1) status = "right - jumping" else status = "left - jumping"this.upFlag = 1;this.inLand = false;ymove = -10;public void down() /向下移動(dòng)if (status.indexOf("right&qu
25、ot;) != -1) status = "right - jumping" else status = "left - jumping"this.upFlag = -1;ymove = 10;5.3場(chǎng)景類 場(chǎng)景是馬里奧游戲之中最難控制的一塊內(nèi)容,因?yàn)橐粋€(gè)馬里奧游戲里面有多個(gè)通關(guān),而且每一次的通過(guò),里面的敵人和障礙物等的位置都是不一樣的。游戲設(shè)計(jì)越復(fù)雜,那么場(chǎng)景的控制就越難。public class BackGround private List<Obstruction> obs = null; /包含所有的障礙物private Buffer
26、edImage nowImage = null; /包含當(dāng)前場(chǎng)景private List<Obstruction> removedObs = null ; /移除的障礙物private List<Enemy> removedEns = null;/移除的 .5.4障礙物類 障礙物類(obstruction)中擁有障礙物的屬性,而場(chǎng)景(background)中的障礙物和敵人,使用兩個(gè)集合來(lái)進(jìn)行保存。因此可以通過(guò)集合來(lái)保存各個(gè)障礙物在場(chǎng)景中的位置和狀態(tài)。比如:添加一張北京圖片到場(chǎng)景之中,將磚塊,問(wèn)號(hào),綠皮按照障礙物的位置放到對(duì)應(yīng)的位置中去。當(dāng)然,場(chǎng)景類應(yīng)該判斷當(dāng)前的場(chǎng)景是屬
27、于第一個(gè)場(chǎng)景還是其他場(chǎng)景,而初始化不同的障礙物位置。public class Obstruction implements Runnable /障礙物類private int x = 0;/坐標(biāo)private int y = 0;private int type = 0; /障礙物類型private int startX = 0 ; /障礙物初始坐標(biāo)private int startY = 0 ;private int startType = 0 ; /障礙物開(kāi)始類型private Thread t = new Thread(this); /障礙物線程private BufferedImage
28、 bf = null; /所有的障礙物圖片集合.5.4敵人類 敵人類與馬里奧的關(guān)系就是一個(gè)相互攻擊的關(guān)系。對(duì)于不同的敵人,馬里奧也會(huì)有不同的狀態(tài)。對(duì)于三角怪,當(dāng)馬里奧與三角怪橫向碰撞的時(shí)候,馬里奧必然會(huì)失去一條生命,但是當(dāng)在縱向碰撞的時(shí)候敵人會(huì)死亡。而對(duì)于食人花,不管馬里奧與食人花以怎樣的形式碰撞都會(huì)失望。 敵人與馬里奧的判斷,跟障礙物與馬里奧判斷類似。而不同的是敵人是移動(dòng)的。因此通過(guò)(mario)類中的場(chǎng)景對(duì)象,可以對(duì)敵人的狀態(tài)進(jìn)行控制,判斷敵人當(dāng)前的與馬里奧的相對(duì)情況。而做出不同的結(jié)果判斷。 public class Enemy implements Runnable /敵人類privat
29、e int x; /敵人類坐標(biāo)private int y;private int startX; /敵人類初始坐標(biāo)private int startY;private int startType; /敵人類類型private int width; /敵人類占用范圍private int height;private boolean moveLeft = true; /向左移移動(dòng)判斷標(biāo)志private BufferedImage nowImage = null; /當(dāng)前圖片集合private int type = 0;private Thread t = new Thread(this); /當(dāng)
30、前線程private int imageFlag = 0; private BackGround bg = null; /場(chǎng)景對(duì)象private boolean deadFlag = false; /死亡標(biāo)志private boolean moveUp = true;/向上移動(dòng)判斷private int uplimit = 0;/向上移動(dòng)限制private int downlimit = 0;/向下移動(dòng)限制private boolean stop = true;/是否停止標(biāo)志private int stopTime = 0;/時(shí)間限制private boolean trutleFlag = f
31、alse; /三角怪private boolean movingFlag = false; /是否能夠移動(dòng) .6、 附錄Backgournd: /場(chǎng)景類的屬性和方法ens : List<Enemy>flag : ObstructionnowImage : BufferedImageobs : List<Obstruction>position : intremovedEns : List<Enemy>removedObs : List<Obstruction>statusFlag : intBackGround(BufferedImage, in
32、t)bgRemove()enemyStartMove()getEns()getFlag()getNowImage()getObs()getPosition()getRemovedEns()getRemovedObs()getStatusFlag()initobs()resetObs()setEns(List<Enemy>)setNowImage(BufferedImage)setObs(List<Obstruction>)setPosition(int)setStatusFlag(int)stopGame()Enemy: /敵人類的屬性和方法bg : BackGroun
33、ddeadFlag : booleandownlimit : intheight : intimageFlag : intmoveLeft : booleanmoveUp : booleanmovingFlag : booleannowImage : BufferedImagestartType : intstartX : intstartY : intstop : booleanstopTime : intt : ThreadtrutleFlag : booleantype : intuplimit : intwidth : intx : inty : intEnemy(int, int,
34、int, BackGround)Enemy(int, int, int, BackGround, int, int)dead()getDownlimit()getHeight()getNowImage()getT()getType()getUplimit()getWidth()getX()getY()initEm()isMovingFlag()isTrutleFlag()run()setBg(BackGround)setDownlimit(int)setHeight(int)setMoveLeft(boolean)setMovingFlag(boolean)setNowImage(Buffer
35、edImage)setTrutleFlag(boolean)setType(int)setUplimit(int)setWidth(int)setX(int)setY(int)Mario類的屬性及方法:airTime : intbg : BackGrounddeadFlag : booleanheight : intinLand : booleanleftFlag : booleanlife : intmovingImg : intnowImage : BufferedImageoldLifeFlag : intrightFlag : booleanscore : intstatus : St
36、ringt : ThreadupFlag : intwidth : intwinFlag : booleanx : intxmove : inty : intymove : intMario(int, int)Mario(int, int, BackGround)Mario(int, int, int, int, int)checkAddLife()down()gameOver()getBg()getHeight()getLife()getNowImage()getScore()getStatus()getT()getUpFlag()getWidth()getX()getY()isDeadFlag()isInLand()isLeftFlag()isRightFlag()isWinFlag()jump()moveLeft()moveRight()run()setBg(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 9、2025年度綠色建筑模板單項(xiàng)勞務(wù)分包合同3篇
- 個(gè)人宅基及房屋銷售協(xié)議版B版
- 2025版門(mén)面租賃合同簽訂流程及注意事項(xiàng)4篇
- 游戲化教學(xué)增強(qiáng)小學(xué)生注意力的教育模式
- 2025版化妝品銷售代理合同范本6篇
- 美容院與互聯(lián)網(wǎng)平臺(tái)2025年度線上推廣服務(wù)合同4篇
- 智能化學(xué)習(xí)環(huán)境下的學(xué)生思維升級(jí)
- 二零二五年度汽車美容服務(wù)合同范本4篇
- 科技產(chǎn)品的動(dòng)態(tài)視覺(jué)設(shè)計(jì)實(shí)踐分享
- 時(shí)間管理對(duì)學(xué)習(xí)態(tài)度的積極影響
- 教師招聘(教育理論基礎(chǔ))考試題庫(kù)(含答案)
- 2024年秋季學(xué)期學(xué)校辦公室工作總結(jié)
- 鋪大棚膜合同模板
- 長(zhǎng)亭送別完整版本
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 你比我猜題庫(kù)課件
- 無(wú)人駕駛航空器安全操作理論復(fù)習(xí)測(cè)試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡(jiǎn)介
- 老年人心理健康量表(含評(píng)分)
評(píng)論
0/150
提交評(píng)論