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

正文內(nèi)容

j2me手機游戲開發(fā)畢業(yè)設(shè)計(doc畢業(yè)設(shè)計論文)-wenkub.com

2025-06-21 02:32 本頁面
   

【正文】 圖 55圖 55J2ME 手 機 游 戲 開 發(fā) 與 設(shè) 計畢業(yè)設(shè)計 第 31 頁6 總結(jié) 本程序的總結(jié)和展望 本程序設(shè)計實現(xiàn)了手機上以 J2ME 為平臺的飛行射擊游戲的開發(fā),敵人運行的方式由程序進行控制,具有一定的可玩性和復(fù)雜性。第 7 條以現(xiàn)有水平無法解決,因為出現(xiàn)這種情況的原因估計是內(nèi)存的問題,而由于水平的關(guān)系,現(xiàn)在的代碼變量過多,并且效率低下,有很多重復(fù)的地方,解決的方法只能是在水平提高的情況下重寫整個程序。即使是作為操作系統(tǒng)的各種版本的 Windows 也時常會發(fā)生許多類型的錯誤和漏洞。點擊 Lanuch 按紐,進入如圖 55 的界面,即可以進行游戲測試了。如圖 53 所示。對游戲有關(guān)的各運行面也做了展示。而((()=()10)||(()=()+60)表示當(dāng)玩家飛機處于 BOSS 的左右各 10 個象素的范圍內(nèi)時。同理如果()(getWidth()()),則表示其在屏幕右方出界,應(yīng)改為左飛。//生命進度條背靜紅 (255,255,255)。以達(dá)成白云的隨機出現(xiàn)效果。所以的白云的起始位置在每次游戲開始時是固定的。cloud[2].setPosition(112,planepoup(90))。 白云的實現(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 之中。 普通敵人是否發(fā)射子彈由以下語句 if(((()=()18)||((() 6)=()))amp。當(dāng)飛機飛出屏幕時,jb[0]賦值為 3。 以上四種情況的最后,都將使用函數(shù) nextInt()產(chǎn)生 ai,aipp 的值。amp。當(dāng) kkk〈0 時,飛機只向左轉(zhuǎn)。當(dāng) aipp0 時,向右下方運動,實現(xiàn)方法同上。 情況 1:使用 aipp=()%5 取得隨機數(shù) aipp,根據(jù)下面三條語句設(shè)置飛機的出現(xiàn)位置:(100aipp*30,planepoup+24)。同時調(diào)用 (0,3),使 sboos 快速飛出屏幕,直到判斷語句 if(()65)為真時,調(diào)用下面的函數(shù)setVisable(false),使得 sboos 不可見。同時,玩家生命標(biāo)志 playerno 加 1,sbz 賦值為1,使得sboos 無法發(fā)射子彈,sbpzbz 賦值為 1,使得玩家的子彈不與 sboos 進行碰撞檢測。(參見圖 410)。設(shè)置這個標(biāo)志位的目的是防止 sboos 根據(jù) c1 的位置不停的改變運行狀態(tài),即防止 sboos 成為跟蹤飛機。最后,要將 sbz 賦值為 1,消除 sboos 不停設(shè)置初始位置的 BUG。 游戲中的獎勵及相關(guān)飛機的行為 根據(jù)游戲設(shè)定,當(dāng) y1=1000 時,會出現(xiàn)如圖 48所示的飛機(sboss),當(dāng)玩家擊落他后,屏幕會顯示“援軍到達(dá)“,并且玩家剩余飛機數(shù)加 1。其中根據(jù) playerno 的值繪出玩家的飛機標(biāo)志數(shù)(應(yīng)該有更好方法,但是沒有想到 )當(dāng)每次刷新繪圖頁面時,應(yīng)使用 GameCanvas 的 flushGraphics()將屏幕后臺的緩沖區(qū)內(nèi)的圖像刷新到前臺來(flushGraphics()應(yīng)該寫在 render(){ }的最后)。 render()和 renderboss()在方法 render()過程中,除了要重繪飛機、地圖、子彈外還要在上方繪制關(guān)卡信息、戰(zhàn)果、玩家飛機數(shù)、及無敵狀態(tài)時的無敵時間、大飛機生命條等。z++)初始化該組子彈中的 3 發(fā)子彈,而設(shè)置子彈位置的函數(shù)應(yīng)該在 if(huokebullet[i].no==1)語句外設(shè)置,因為當(dāng)初設(shè)計的時候 mybullets 類里的函數(shù)寫成了一次設(shè)置三組子彈的形式。i=6。LEFT_PRESSED)==0)的作用是消除左、右飛后在上、下飛時飛機的形態(tài)不變的 BUG。當(dāng)玩家按方向鍵時,玩家飛機就向不同的方向運行,這需要使用 (int x,int y)函數(shù),當(dāng)玩家控制飛機向左或右飛時,需要使 ()函數(shù)改變飛機的圖形(參見圖 47,此時飛機右飛)。 在 if(planert==2)判斷語句中,使用語句 move(0,2)使飛機自己向上運動,使用 if(()(planepo24))判斷飛機是否到達(dá)屏幕最下方(planepo是屏幕下邊緣的坐標(biāo)),如條件為真,則將 inputno設(shè)置為 1,表示鍵盤可用,將 planert 賦值為 3,使其不再執(zhí)行以上各步。J2ME 手 機 游 戲 開 發(fā) 與 設(shè) 計畢業(yè)設(shè)計 第 20 頁圖 48 游戲界面 當(dāng) playerno0 時,碰撞后,將變量 planert 賦值為 1,在之后的 if(planert==1)判斷語句中,重新設(shè)定玩家飛機的圖片和可視狀態(tài),同時使用 setPosition()函數(shù)設(shè)定玩家非的位置在屏幕下方。在按“開火”鍵時,使 用setImage()函數(shù)將 huokebullets 重新設(shè)定為子彈圖片(每次擊落敵機后屏幕上的爆炸效果有 3 團,并且按“開火”后爆炸圖片就消失了,實際上 setVisavle(false)的應(yīng)該是子彈數(shù)組,而對敵人精靈使用 setImage(),這樣效果會好一些)。使用 ()重新開始程序的循環(huán)。當(dāng)用戶按下“繼續(xù)”的時候,start()將重新產(chǎn)生一個線程繼續(xù)執(zhí)行相關(guān)的運算和畫面繪制。將”繼續(xù)“按紐”添加進來。 關(guān)于 mandAction()方法每個創(chuàng)建 Command 實例的 J2ME 的應(yīng)用程序也必須創(chuàng)建實現(xiàn) CommandListener 接口的實例。同樣處于節(jié)約內(nèi)存的考慮,sboss 與 cboss 同用 3 個 Sprite 類對象 bossbullet0,1,2。(參考圖 46) gameScreen類的構(gòu)造函數(shù)gameScreen 類的構(gòu)造函數(shù)要將游戲中出現(xiàn)的所有精靈都實例化,實際上,這種方法嚴(yán)重的占用了內(nèi)存,但在當(dāng)時,我并沒有意識到這一點。由于地圖位于 Layer 的最低層,即離用戶視線最遠(yuǎn)的層,所以 Tiledlayer 最后一個被添加到 lm 中。其中 i 的值由循環(huán) for(int i=0。 圖 45 地圖J2ME 手 機 游 戲 開 發(fā) 與 設(shè) 計畢業(yè)設(shè)計 第 17 頁 (0,y1) y1=y1+1。TiledLayer 指的是由一塊一塊類似用瓷磚拼湊起來的畫面。gameScreen 類包括了 LayerManager,這樣所有靜態(tài)和動態(tài)的圖象都不需要手動刷新,只需要在 LayerManager 中加入所有的需要控制的精靈,在統(tǒng)一由 LayerManager 刷新即可, 因此,在 gameScreen 中創(chuàng)建 LayerManager 的對象 lm,并在構(gòu)造函數(shù)中實例子化。它運行在獨立的線程中,以恒定的頻率刷新畫面。類中定義的方法 setfirstposition()起到定義玩家子彈發(fā)射坐標(biāo)的作用(此方法在設(shè)計時起到的作用是消除每按一次開火玩家子彈位置就重新定位這個 BUG,但是,這個 BUG 完全可以用設(shè)置圖 43 關(guān)于界面進入游戲y11550pzbzover==0顯示敵人玩家被擊落了嗎 ?玩家是否還有機會?繼續(xù)游戲是否過關(guān)返回主界面YYNYYN圖 44 gameScreen 類主要關(guān)系流程圖NJ2ME 手 機 游 戲 開 發(fā) 與 設(shè) 計畢業(yè)設(shè)計 第 16 頁標(biāo)志位的方法消除)。 當(dāng)移動選項條到某項,并點擊 ok 時,在 mandAction()方法中根據(jù) menuIndex 圖 42 游戲的菜單 J2ME 手 機 游 戲 開 發(fā) 與 設(shè) 計畢業(yè)設(shè)計 第 15 頁的值判斷選擇了哪個選項,列如當(dāng)選擇“關(guān)于”時,將調(diào)用 lzhhdm 類中的 renwuShow()方法以顯示”關(guān)于”界面(圖 43),在 renwuShow()方法中,F(xiàn)orm 類對象 a=null,表示清空 Form,并重新調(diào)用用 append()方法在表單上放置 StringItem 類的實例以顯示游戲關(guān)于信息,“幫助“界面的顯示與”關(guān)于“界面相同,只不過調(diào)用的是 helpShow()方法。在類 menuscreen 中定義了 lowColor 和highColor、highBGColor 三個整型變量及布爾型變量 co。調(diào)用 addCommand()命令建立 ok 命令與 Form 之間的關(guān)聯(lián),調(diào)用setCommandListener()命令使 Form 與 CommandListener 建立關(guān)聯(lián)。本程序主類為 lzhhdm,并實現(xiàn)接口 CommandLIstener。4 程序分析和具體實現(xiàn) 游戲進入前的選擇J2ME 手 機 游 戲 開 發(fā) 與 設(shè) 計畢業(yè)設(shè)計 第 14 頁每個 MIDlet 程序都必須有一個主類,該類必須繼承自 MIDlet?;煜?,體積大約能減少 25%,這對當(dāng)前費用較貴的無線網(wǎng)絡(luò)傳輸是有一定意義的。由此引入混淆器的概念。它包括了所有的信息。其中,允許強制垃圾回收(Garbage Collection)。將 PNG 格式的小分辨率圖象合并在一張大的高分辨率圖象中,由于減少了頭文件的大小,將比合并前的總大小減少許多。所有這些可以借助混淆器來幫助實現(xiàn) (2)所有代碼寫為一個類。 使用每組子彈的第一發(fā)作為與敵人進行碰撞檢測的精靈,同時相關(guān)的標(biāo)志位也設(shè)在第一發(fā)子彈中??上в捎跁r間關(guān)系沒有實現(xiàn)。在游戲進行中出現(xiàn)的大型飛機,由于其不可能立即被擊落,所以應(yīng)該設(shè)置其的運行方法,理論上講還是根據(jù)玩家飛機的坐標(biāo),但是,在此設(shè)置一個標(biāo)志位,使得敵人在取的玩家位置后即開始玩家方向運動,這期間,將不執(zhí)行取得玩家飛機位置重設(shè)飛行方向的步驟。敵人飛機需要具有一定的智能性,以便對玩家攻擊,使游戲具有一定的可玩性。不能與玩家飛機重合,則他每走一步都需要檢測一下是否與玩家飛機碰撞。同時,這樣的機制也可檢測到幾個鍵同時按下的狀態(tài),從而提供斜向運行等相應(yīng)功能(本程序沒有實現(xiàn)斜上運行功能)。 玩家飛機的控制方式和敵人方的智能運行 GameCanvas 提供 getKeyStates 函數(shù)可獲取當(dāng)前鍵盤上的信息。這些代碼包含在每一個單獨的 png 格式圖象中,然而如果將多個 png 圖象合并在一張幅面稍大一些的整圖中,多個 chunks 就可以得到精簡,圖片的大小可以得到控制。 PNG圖片格式PNG(Portable Network Graphics)格式是 MIDlet 唯一支持的圖象格式,PNG 具體格式由 PNG Specification,Version 定義的。該類使不需要高分辨率的圖J2ME 手 機 游 戲 開 發(fā) 與 設(shè) 計畢業(yè)設(shè)計 第 10 頁象就能創(chuàng)建大幅圖面成為可能。層號總是連續(xù)的,即使有中間的層被移除,其他層的序號會作相應(yīng)的調(diào)整以保持整體的完整性。LayerManager 提供控制整體畫面層的控制。圖片可翻轉(zhuǎn)、顛倒、由一個主角圖片就可以方便的得到所有方向的顯示狀態(tài),相比原先只能使用 Canvas 繪圖,需要將所有方向的主角圖象都繪制在 png圖象中簡化了許多。GameCanvas 類提供了 flushGraphics()的功能,實現(xiàn)了雙緩沖技術(shù)。 Game 類的出現(xiàn)不僅降低了錯誤出現(xiàn)的幾率,也使游戲代碼變的更小,因為開發(fā)者不需要自己編寫象 Sprite 這種例子。 GameCanvas包 J2ME 的流行促進幾個運營商和制造商開發(fā)了一些支持游戲的類,但是,這卻造成了游戲缺乏可移植性的問題,例如,很難將使用 Siemens 的 Sprite 類的游戲移植到 Nokia上。Image 類提供了一個建立背景的靜態(tài)方法createImage(int width, int height),再利用 getGraphics()方法取得屬于這個背景的Graphics 對象,所進行的繪圖操作都會作用在背景上,等到全部的繪圖操作完成后,再調(diào)用 drawImage()方法將背景的數(shù)據(jù)復(fù)制到實際顯示的屏幕上。程序只能在 paint()函數(shù)中使用 Graphics 繪制,GameCanvas 可調(diào)用 getGraphics()函數(shù)直接繪制在緩沖區(qū)上,可以在任何時間請求傳輸?shù)角芭_。鍵盤事件由鍵代碼指定,但這樣控制游戲會導(dǎo)致缺乏通用性,并不是每個設(shè)備的鍵盤布局都適合游戲的操作。Mybullets 類為玩家子彈類。lzhhdm 類繼承自Midlet,gameScrenn 類、MenuScreen 類繼承自 GameCanvas,mybullets 繼承自 Sprite類。當(dāng)敵人或者用
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1