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

正文內(nèi)容

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

2025-06-24 02:32本頁面
  

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