freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

j2me手機(jī)游戲開(kāi)發(fā)畢業(yè)設(shè)計(jì)(doc畢業(yè)設(shè)計(jì)論文)-資料下載頁(yè)

2025-06-24 02:32本頁(yè)面
  

【正文】 如果 sboos 被擊落后,使用函數(shù) setVisable(false)將bossbullet0、bossbulletbossbullet2 設(shè)置為不見(jiàn),使用 ()函數(shù)將sboos 的圖片設(shè)置為爆炸圖片。同時(shí),玩家生命標(biāo)志 playerno 加 1,sbz 賦值為1,使得sboos 無(wú)法發(fā)射子彈,sbpzbz 賦值為 1,使得玩家的子彈不與 sboos 進(jìn)行碰撞檢測(cè)。 同時(shí)在屏幕中使用 drawString()繪制“援軍到達(dá)”四個(gè)字,隨著屏幕的運(yùn)動(dòng),爆炸圖片逐漸進(jìn)入屏幕下方,當(dāng) ()palnepo,通過(guò)改變標(biāo)志位的值使得drawSteing()不在執(zhí)行,四字消失。 如果玩家被擊落后并沒(méi)有點(diǎn)“返回“,而此時(shí),背景會(huì)一直運(yùn)動(dòng)到關(guān)尾,考慮到其圖 49J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 23 頁(yè)與關(guān)尾 BOSS 共用 3 發(fā)子彈,如 sboos 不消失,將會(huì)出現(xiàn)子彈亂飛的情況。所以,如果判斷語(yǔ)句 if((()==getHeight()))為真,則表示離地圖的終點(diǎn)只有一個(gè)屏幕的距離時(shí),sbz 賦值為sbpzbz 賦值為 1(含義上面已經(jīng)說(shuō)明)。同時(shí)調(diào)用 (0,3),使 sboos 快速飛出屏幕,直到判斷語(yǔ)句 if(()65)為真時(shí),調(diào)用下面的函數(shù)setVisable(false),使得 sboos 不可見(jiàn)。 普通敵人相關(guān)屬性 普通敵人是指游戲中不斷出現(xiàn)的蘭色飛機(jī)。 首先在程序中首先定義了 aik、aip 兩個(gè) Random()類對(duì)象,ai 和 aipp 兩個(gè)整型變量。程序中使用 switch(ai)語(yǔ)句判斷下一次的飛機(jī)出現(xiàn)情況,為了達(dá)到不重復(fù)出現(xiàn)的效果,使用語(yǔ)句 ai=()%4(同樣應(yīng)該在構(gòu)造函數(shù)中放置此語(yǔ)句和aipp=() % 5,以使每次游戲開(kāi)始的時(shí)候敵人飛機(jī)的出現(xiàn)順序是不固定的),以隨機(jī)出現(xiàn) 0,1,2,3 四個(gè)整數(shù)(代表著飛機(jī)的四種出現(xiàn)情況)。 情況 1:使用 aipp=()%5 取得隨機(jī)數(shù) aipp,根據(jù)下面三條語(yǔ)句設(shè)置飛機(jī)的出現(xiàn)位置:(100aipp*30,planepoup+24)。 (100,planepoup)。 (100+aipp*30,planepoup24)。將 getHeight()/8 賦給整型變量 kkk,每次循環(huán) kkk1,當(dāng) kkk=1 時(shí)飛機(jī)轉(zhuǎn)向,當(dāng)aipp0 時(shí),飛機(jī)向左下方運(yùn)行,使用語(yǔ)句 setFrame(0)、move(3,3)達(dá)成向左下方運(yùn)動(dòng)的效果。當(dāng) aipp0 時(shí),向右下方運(yùn)動(dòng),實(shí)現(xiàn)方法同上。 情況 2:初始位置設(shè)置方法同情況 1。當(dāng) kkk〈0 時(shí),飛機(jī)掉頭向上飛,其中setFrame(3),move(4,0)。 情況 3:初始位置設(shè)置方法同情況 1。當(dāng) kkk〈0 時(shí),飛機(jī)只向左轉(zhuǎn)。設(shè)置情況 3 的原因是在更多的隨機(jī)位置出現(xiàn)敵機(jī)。 情況 4:初始位置設(shè)置方法同情況 1。但其中的飛機(jī) j1 具有跟蹤能力,其實(shí)現(xiàn)方法如下:使用 2 個(gè) if 語(yǔ)句 if(()())、if(()())判斷 J1在 c1 的左或右側(cè),并且實(shí)時(shí)根據(jù)判斷情況使用 setFrame()和 move()改變飛機(jī)的形態(tài),使用語(yǔ)句if((()())amp。amp。((()+48)())amp。amp。(()()))J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 24 頁(yè)判斷 c1 是否在 j1 的下方,當(dāng) c1 在 j1 的下方時(shí),發(fā)射子彈 jbullet1。 以上四種情況的最后,都將使用函數(shù) nextInt()產(chǎn)生 ai,aipp 的值。 設(shè)置整型數(shù)組 jb[4],對(duì)應(yīng)著 4 種出現(xiàn)情況的標(biāo)志位。 如,執(zhí)行情況 1,首先執(zhí)行判斷語(yǔ)句 if(jb[0]==1),在此語(yǔ)句中,首先使用setVisable (true)函數(shù)將敵人飛機(jī)設(shè)置為可見(jiàn)的,并根據(jù)上次運(yùn)行的 qipp 的值設(shè)置敵人飛機(jī)的初始位置最后,jb[0]賦值為 2。 接著執(zhí)行判斷語(yǔ)句 if(jb[0]==2),在此語(yǔ)句中,首先使用 move()函數(shù)使飛機(jī)向下運(yùn)動(dòng),同時(shí) kkk 減 1,當(dāng) kkk=0 時(shí),飛機(jī)轉(zhuǎn)向,此時(shí),根據(jù) aipp 的正負(fù)判斷飛機(jī)向哪邊轉(zhuǎn)向。當(dāng)飛機(jī)飛出屏幕時(shí),jb[0]賦值為 3。 需要注意的一點(diǎn)是,當(dāng)取得 ai 的數(shù)值時(shí),一定要寫上這條語(yǔ)句:jb[ai]=1。因?yàn)楫?dāng)4 種情況都出現(xiàn)一便的時(shí)候,標(biāo)志位 jb[]里的數(shù)值都將變?yōu)?3,如果不將其重新賦值為1,敵人飛機(jī)將只能出現(xiàn) 4 次。 其他 3 種情況也大致如此。 普通敵人是否發(fā)射子彈由以下語(yǔ)句 if(((()=()18)||((() 6)=()))amp。(jbz==0)),即 c1 在 j1 左側(cè) 18 象素范圍內(nèi)或 j2 左側(cè) 6 象素范圍時(shí),j0、jj2 一起發(fā)射子彈,jbz=1,表示在這組子彈消失前敵人不發(fā)射子彈。 如果 jpb 的值為 0,則判斷語(yǔ)句 if(jpb==0)里的 move()語(yǔ)句將一直執(zhí)行下去。 之后,還需要對(duì)每發(fā)子彈于玩家飛機(jī)進(jìn)行碰撞檢測(cè),如果碰撞,則將碰撞的這發(fā)子彈設(shè)置為不可見(jiàn)。 白云的實(shí)現(xiàn)原理 為了游戲界面更加美觀,程序中設(shè)定了精靈數(shù)組 cloud[i]來(lái)表示白云,由于白云應(yīng)該在所有飛機(jī)的上方,即 cloud[i]應(yīng)該最早被 append()到 LayerManager 中,或者使用insert (cloud[],0)在索引數(shù)值 0 處插入 Layer,本程序采用了第一種方法,即在gameScreen 類的構(gòu)造函數(shù)中按游戲設(shè)置的順序使用 ()加入到 LayerManager 之中。 程序中設(shè)定白云數(shù)為 5。首先設(shè)置白云的初始位置,其語(yǔ)句如下:cloud[0].setPosition(25,planepoup(65))。cloud[1].setPosition(80,planepoup(140))。cloud[2].setPosition(112,planepoup(90))。J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 25 頁(yè)cloud[3].setPosition(175,planepoup(200))。cloud[4].setPosition(223,planepoup(70))。其原理為:將屏幕的 X 數(shù)軸和 Y 數(shù)軸各分成 5 份,即在 X 軸的 5 個(gè)范圍內(nèi)每個(gè)范圍出現(xiàn)一朵白云,Y 軸的每個(gè)范圍內(nèi)也只能出現(xiàn)一朵。所以的白云的起始位置在每次游戲開(kāi)始時(shí)是固定的。白云位置設(shè)定后,使用 move(0,1)使白云移動(dòng),由于白云初始位置設(shè)定在屏幕的不同區(qū)域內(nèi),故其移動(dòng)出屏幕的先后順序是不同的,使用 if(cloud[].getY()planepo)判斷白云是否飛出屏幕。如果為真則使用 cloud[].setPosition(cloudposition*40,planepoup)設(shè)置白云的位置,其中,cloudposition=()%5,aicloud 為 Random()類對(duì)象。乘以 40 表示其在X 軸出現(xiàn)的范圍是多少,cloud[0]、cloud[1]、cloud[2]、cloud[3]、 cloud[4]乘以的值分別為 40,5122。以達(dá)成白云的隨機(jī)出現(xiàn)效果。 關(guān)尾 BOSS及相關(guān)屬性 關(guān)尾處飛機(jī)在屏幕上方橫向移動(dòng),而背景地圖不動(dòng),所以使用 renderboss()重繪屏幕,其中,paint(g,0,0)表示屏幕繪制點(diǎn)在坐標(biāo)軸(0,0)處。BOSS 生命進(jìn)度條由以下語(yǔ)句繪制:(255,0,0)。 (2,2,60,5)。//生命進(jìn)度條背靜紅 (255,255,255)。 (2,2,bosslife,5)。//生命進(jìn)度條前景白其中 bosslife 記錄著 BOSS 的生命值,其初始值為 0,當(dāng)玩家每擊中一次 BOSS,其值加5,即化出白色進(jìn)度條,當(dāng) bosslife==60 時(shí),表示過(guò)關(guān),除玩家飛機(jī)與子彈外的其他Sprite 均使用 setVisable(false)使其不在顯示,同樣的 pzbz 要賦予 1,以消除玩家飛機(jī)還能與敵人碰撞的 BUG。 如果 ()0,則表示其在屏幕左方出界,應(yīng)改為右飛。同理如果()(getWidth()()),則表示其在屏幕右方出界,應(yīng)改為左飛。在飛機(jī)橫向飛行中,使用以下語(yǔ)句判斷飛機(jī)是否開(kāi)火:if(((()=()10)||(()=()+60))amp。amp。(jbsz==0))J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 26 頁(yè)當(dāng)每發(fā)一組子彈后,jbsz=1,則飛機(jī)無(wú)法開(kāi)火,知道子彈飛出屏幕,jbsz 才重新設(shè)定為 0。而((()=()10)||(()=()+60)表示當(dāng)玩家飛機(jī)處于 BOSS 的左右各 10 個(gè)象素的范圍內(nèi)時(shí)。BOSS開(kāi)火。關(guān)尾參見(jiàn)圖 410。 第四章中按照相應(yīng)的步驟描述了所有關(guān)鍵類的具體算法實(shí)現(xiàn),引用了相關(guān)函數(shù)進(jìn)行了具體流程的解釋,并對(duì)原理稍復(fù)雜的函數(shù)做了詳細(xì)的分析。對(duì)游戲有關(guān)的各運(yùn)行面也做了展示。 圖 410 關(guān)尾J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 27 頁(yè)5 測(cè)試 打包測(cè)試的過(guò)程 使用 Eclipse 完成代碼的調(diào)試之后,需要使用 WTK 生成包(即 jar 和 jad 文件),其過(guò)程如下:首先,使用 WTK 的新建項(xiàng)目功能建立一個(gè)新項(xiàng)目,要求與 Eclipse 工作區(qū)下的項(xiàng)目名稱、MIDlet 類名相同(圖 51)。圖 51 新建項(xiàng)目后,將 Eclipse 文件拷入 src 文件夾, 文件拷入class 文件夾(需要新建),將 pic 文件夾拷入 res 文件夾,點(diǎn)擊生成,如一切正常,將如圖片 52 所示。J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 28 頁(yè)圖 52之后,選擇項(xiàng)目包生成包。如圖 53 所示。圖 53生成的 jar 和 jad 文件存儲(chǔ)在 lzhhdm/bin 目錄下。運(yùn)行 Motorola SDK for J2ME,使用 MOTOA760 手機(jī)模擬器進(jìn)行測(cè)試。參考圖54。點(diǎn)擊 Lanuch 按紐,進(jìn)入如圖 55 的界面,即可以進(jìn)行游戲測(cè)試了。 J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 29 頁(yè)圖 54 測(cè)試的過(guò)程,實(shí)際上就是找不同的同學(xué)玩這款游戲,以期望發(fā)現(xiàn) BUG。實(shí)際上,幾乎每一版本都會(huì)產(chǎn)生很多 BUG。 發(fā)現(xiàn)的 BUG及解決情況 幾乎每一個(gè)計(jì)算機(jī)程序都會(huì)有這樣那樣的不足,尤其是未經(jīng)過(guò)精心維護(hù)的非商業(yè)軟件。即使是作為操作系統(tǒng)的各種版本的 Windows 也時(shí)常會(huì)發(fā)生許多類型的錯(cuò)誤和漏洞。本游戲程序?qū)τ诔跎娲祟I(lǐng)域的畢業(yè)設(shè)計(jì)課題來(lái)說(shuō),尤其在開(kāi)始初期,感覺(jué)邏輯復(fù)雜,難以控制,因此產(chǎn)生了大量 BUG,其中一些 BUG 還沒(méi)有解決,所有發(fā)現(xiàn)的 BUG 如下:;炸圖片; J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 30 頁(yè);家被擊落,并且此為玩家的最后一架飛機(jī),雖然顯示援軍到達(dá),但游戲仍然結(jié)束。; 左側(cè)子彈發(fā)射后不停在原位置刷新問(wèn)題;7. 游戲運(yùn)行一段時(shí)間后變的很卡; 其中,4 條 BUG 已經(jīng)解決(方法已在第 4 章相關(guān)位置進(jìn)行了說(shuō)明)。6 沒(méi)有解決,其中,6 三條如果有足夠的時(shí)間可以解決。第 7 條以現(xiàn)有水平無(wú)法解決,因?yàn)槌霈F(xiàn)這種情況的原因估計(jì)是內(nèi)存的問(wèn)題,而由于水平的關(guān)系,現(xiàn)在的代碼變量過(guò)多,并且效率低下,有很多重復(fù)的地方,解決的方法只能是在水平提高的情況下重寫整個(gè)程序。 未完善的功能經(jīng)過(guò)匯總測(cè)試人員的建議,本游戲應(yīng)該完善的功能如下1. 由于每按一次開(kāi)火,就會(huì)對(duì)玩家子彈的精靈數(shù)組進(jìn)行一次循環(huán)檢查,使得本運(yùn)行效率就不高的 KVM 運(yùn)行異常緩慢。即使刷屏沒(méi)有間隔也不會(huì)提高速度; 2. 最好有接寶物的設(shè)置,增強(qiáng)可玩性; 3. 由于沒(méi)由合適的圖片,使得敵人設(shè)置單一; 4. 地圖本應(yīng)由外部文件讀入,但設(shè)計(jì)初期并沒(méi)有掌握這項(xiàng)技術(shù); 5. 手機(jī)游戲最好只有一個(gè)類,而我卻有 4 個(gè); 7. 沒(méi)有添加成績(jī)記錄,即英雄榜; 6. 最大的遺憾,敵人不夠智能化。 希望不遠(yuǎn)的將來(lái),我能夠有能力對(duì)這個(gè)游戲進(jìn)行重寫,以解決 BUG、完善功能。 圖 55圖 55J2ME 手 機(jī) 游 戲 開(kāi) 發(fā) 與 設(shè) 計(jì)畢業(yè)設(shè)計(jì) 第 31 頁(yè)6 總結(jié) 本程序的總結(jié)和展望 本程序設(shè)計(jì)實(shí)現(xiàn)了手機(jī)上以 J2ME 為平臺(tái)的飛行射擊游戲的開(kāi)發(fā),敵人運(yùn)行的方式由程序進(jìn)行控制,具有一定的可玩性和復(fù)雜性。經(jīng)過(guò)了細(xì)心的調(diào)試和排錯(cuò)解決了絕大部分的問(wèn)題。 但是我的水平實(shí)在有限,在第 5 章列舉的眾多 BUG 和遺憾就可以看出這一點(diǎn)來(lái),但我相信,隨著時(shí)間的推移,個(gè)人水平的增長(zhǎng),我一定會(huì)重寫這個(gè)
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1