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

正文內容

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

2025-06-24 02:32本頁面
  

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