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

正文內(nèi)容

手機(jī)游戲(堡壘)的設(shè)計(jì)與開發(fā)—論文(編輯修改稿)

2025-01-11 02:06 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 5. GamePlayer 類 —— 玩家控制的精靈類。 6. GameRMS 類 —— 用于實(shí)現(xiàn)分?jǐn)?shù)排行榜。 7. PlayMusic 類 —— 用于實(shí)現(xiàn)音樂的播放。 8. MySet 類 —— 聲音大小的設(shè)置。 程序的類結(jié)構(gòu) 程序一共有 8 個(gè)主要類,其中菜單類負(fù)責(zé)各個(gè)屏幕的切換。程序的類結(jié)構(gòu)如圖 3 所示: 圖 3 類結(jié)構(gòu) 游戲的流程圖 進(jìn)入游戲菜單。初始情況下,游戲菜單有 5 個(gè)選項(xiàng),它們分別是開始游戲、游戲說明和排行榜、設(shè)置、關(guān)于。選擇開始新游戲則進(jìn)入游戲,在游戲中如果按下非游戲鍵則中斷游戲返回菜單,此時(shí)菜單中增加了一個(gè)繼續(xù)游戲的選項(xiàng),可以返回游戲也可以重新開始新的游戲。在菜單中選擇游戲說明或者高分記錄,則進(jìn)入相應(yīng)的屏幕,他們都能用“后退”軟鍵返回菜單。菜單中的退出選項(xiàng)用于退出PlayMusic GameOgre GameMIDlet :MIDlet Mymenu MyGame GameRMS MySet Myhelp 第 8 頁 共 23 頁 程序。游戲的流程如圖 4 所示: 圖 4 游戲的流程圖 游戲的實(shí)現(xiàn) 游戲一共實(shí)現(xiàn)了幾個(gè)類,包括用于游戲外部的、菜單類、排行榜屏幕類、聲音設(shè)置屏幕類、結(jié)束屏幕類,以及用于游戲本身的游戲畫布類、聲音效果類。 主類 GameMIDlet 的實(shí)現(xiàn) MIDlet 是最核心的類。 MIDlet 程序有三種狀態(tài): 1.暫停狀態(tài) 2.運(yùn)行狀態(tài) 3.銷毀狀態(tài) J2ME 程序都是從 MIDlet 類開始執(zhí)行,系統(tǒng)在執(zhí) 行 MIDlet 程序時(shí),首先構(gòu)造一個(gè) MIDlet 類型的對(duì)象,然后使程序進(jìn)入到暫停狀態(tài),按照生命周期的規(guī)定,系統(tǒng)會(huì)自動(dòng)調(diào)用 MIDlet 對(duì)象的 startApp 方法使程序進(jìn)入到運(yùn)行狀態(tài),開始程序的執(zhí)行。 菜單 新游戲 說明 排行榜 設(shè)置 關(guān)于 退出 游戲 說明 Back 排行榜 Back 游戲分?jǐn)?shù) 設(shè)置 Back 關(guān)于 Back 第 9 頁 共 23 頁 下圖是運(yùn)行時(shí)顯示的畫布對(duì)象 : 圖 5 屏幕之間的切換 首先,先要?jiǎng)?chuàng)建 MIDlet 類型的對(duì)象,下面我們來看對(duì)象的構(gòu)造方法: //主程序構(gòu)造方法 public GameMIDlet() { rs = null。 RecordName = ―GameRMS‖。 = (this) 。 = this。 } 在這個(gè)構(gòu)造器中,創(chuàng)建了一個(gè) Display 對(duì)象用于顯示,然后,把當(dāng)前程序的引用傳給菜單類中的靜態(tài)變量。 Display 類有兩個(gè)最主要的作用: 獲得屏幕的屬性。例如屏幕是否是彩色的,以及支持的顏色數(shù)量等信息。 控制屏幕的顯示。例如使屏幕顯示某個(gè)指定界面或者獲得當(dāng)前的顯示界面等 。 其中,特別是第二個(gè)作用使用的更加頻繁。 當(dāng)程序啟動(dòng)的時(shí)候,則調(diào)用了程序的 startApp 方法,用來顯示畫面: public void startApp() { //程序開始,打開數(shù)據(jù)庫,如果數(shù)據(jù)庫沒有數(shù)據(jù)就添加 10筆空白數(shù)據(jù),最后關(guān)閉數(shù)據(jù)庫 第 10 頁 共 23 頁 try { rs = (RecordName,true)。 } catch (Exception e) { (―創(chuàng)建數(shù)據(jù)庫失敗 ‖)。 } GameRMS rd = new GameRMS(―player‖,0)。 byte tem[] = ()。 try { if(()==0) { for(int i=1。i=11。i++) { try { (tem,0,)。 }catch(Exception e) { (―添加數(shù)據(jù)失敗 ‖)。 } } } } catch (Exception e1) { (―得到數(shù)據(jù)庫大小失敗 ‖)。 } try { ()。 }catch(Exception e) { 第 11 頁 共 23 頁 (―關(guān)閉數(shù)據(jù)庫失敗 ‖)。 } //將畫面設(shè)為主畫面 MAIN SCREEN new Thread(this).start()。 } 程序開始,打開數(shù)據(jù)庫,如果數(shù)據(jù)庫沒有數(shù)據(jù)就添加 10 筆空白數(shù)據(jù),最后關(guān)閉數(shù)據(jù)庫,然后開始一個(gè)新的線程,啟動(dòng)菜單。 MIDP 中的存儲(chǔ)系統(tǒng)是實(shí)際為一個(gè)類似于數(shù)據(jù)庫的系統(tǒng),而并不是簡(jiǎn)單的文件系統(tǒng),這個(gè)系統(tǒng)稱為記錄管理系統(tǒng)( Record Management System, RMS)。 RMS實(shí)現(xiàn)數(shù)據(jù)的持久性管理,提供了數(shù)據(jù)存儲(chǔ)的功能,可以在程序下次啟動(dòng)是再次使用。 記錄存儲(chǔ)是面向記錄的數(shù)據(jù)庫,可把一個(gè)記錄存儲(chǔ)看作一個(gè)數(shù)據(jù)庫文件,由許多記錄組合而成,這些記錄將持久保存并支持跨多個(gè) MIDlet 的請(qǐng)求。在系統(tǒng)平臺(tái)的整個(gè)常規(guī)應(yīng)用期間,包括重啟,更換電池等, MIDlet 的記錄存儲(chǔ)都由系統(tǒng)平臺(tái)負(fù)責(zé)維護(hù),系統(tǒng)會(huì)盡可能維持記錄的完整性。 當(dāng)調(diào)用 destroyApp 這個(gè)方法的時(shí)候,則退出程序。 public void destroyApp(boolean unconditional) { exit()。 } public void exit() { ()。 notifyDestroyed()。 } 退出程序的時(shí)候,要實(shí)行垃圾回收,釋放掉不再使用的內(nèi)存。 2.屏幕切換,如圖 6: 第 12 頁 共 23 頁 圖 6 屏幕切換 菜單的圖形切換采用的是流程控制器,非常方便,簡(jiǎn)潔的實(shí)現(xiàn)了屏幕畫面的切換,下面是關(guān)鍵實(shí)現(xiàn)代碼: //導(dǎo)航器 //設(shè)置 4 個(gè)常量分別代表主畫面,游戲畫面,幫助畫面和排行榜畫面 final public static int MY_MENU = 1。 final public static int MY_GAME = 2。 final public static int MY_HELP = 3。 final public static int MY_RMS = 4。 final public static int MY_ABOUT = 5。 final public static int MY_SET = 6。 采用靜態(tài)變量來對(duì)畫面進(jìn)行標(biāo)識(shí)。 //流程執(zhí)行,獲得需要畫面的對(duì)象,并顯示在屏幕上 public static void show() 第 13 頁 共 23 頁 { switch(current) { case MY_MENU: (())。 break。 case MY_GAME: (())。 break。 case MY_SET: (())。 break。 case MY_HELP: (())。 break。 case MY_RMS: (())。 break。 case MY_ABOUT: (())。 break。 } } 這樣,采用上面這個(gè)函數(shù),非常方便的實(shí)現(xiàn)了流程的轉(zhuǎn)換。實(shí)現(xiàn)屏幕的切換 。 游戲畫布 MyGame 類的實(shí)現(xiàn) 在 J2ME 游戲編程中, Canvas 類是最常用的類之一,該類提供了獲得手機(jī)屏幕屬性、繪制界面以及事件處理等很多實(shí)用的功能。 Canvas 類是 Displayable 的子類,主要用來需要處理低級(jí)事件,例如鍵盤按鍵事件等,以及需要繪制屏幕的程序。在實(shí)際的使用過程,一般都通過繼承Canvas 來利用該類提供的功能。 Canvas 類是一個(gè)抽象類,繼承該類的時(shí)候必須 第 14 頁 共 23 頁 覆蓋 paint 方法。 GameCanvas 類提供 了基本的游戲用戶接口。除了從 Canvas 繼承下來的特性 (命令 ,輸入事件等 )以外 ,它還提供了專門針對(duì)游戲的功能 ,比如后備屏幕緩沖和鍵盤狀態(tài)查詢的能力。這也是 GameCanvas 與 Canvas 相比所具有的兩個(gè)優(yōu)點(diǎn) .來看游戲畫面: 當(dāng)流程控制器轉(zhuǎn)到游戲運(yùn)行界面時(shí),則用到了 游戲畫布 MyGame 類。 下面是游戲截圖: 圖 7 游戲截圖 下面來看類的聲明: public class MyGame extends GameCanvas implements Runnable { } 我們所用的畫布程序,正是繼承了 GameCanvas這個(gè)類,同時(shí)派生了 Runnable接口,來實(shí)現(xiàn)生成一個(gè)新的線程的功能。 程序的 run 方法: public void run() { long st = 0。 long et = 0。 Graphics g = getGraphics()。 for(stage = 2。stage = 4。stage++) { flag = true。 (0,0,0)。 第 15 頁 共 23 頁 (0,0,getWidth(),getHeight())。 (255,255,0)。 ((,RGE))。 (―第 ‖ + (stage 1)+ ― 關(guān) ‖,getWidth()/230,getHeight()/210,|)。 flushGraphics()。 try { (1000)。} catch (InterruptedException e1) {} CREAT_STAGE()。 // 調(diào)用創(chuàng)建關(guān)卡的方法 try {(500)。} catch (InterruptedException e1) {} mpaint(g)。 isKey = true。 while(flag) //游戲正式開始 { while(ispause) //判斷是否按下暫停 { try{ (100)。 } catch(Exception e){} } st = ()。 StartGameTime = ()。 INPUT_KEY()。 //調(diào)用按鍵方法 PENG_ZHUANG()。 //調(diào)用各種判斷和行動(dòng)的方法 movMing()。 //調(diào)用刷新畫面的方法 mpaint(g)。 et = ()。 if((etst)rest) { try { (rest(etst))。 } catch(Exception e){} }} 第 16 頁 共 23 頁 if(isEndGame) //判斷是否輸?shù)粲螒? { if(islose) { EedGameTime = ()。 (0,0,0)。 (0,0,getWidth(),getHeight())。 (255,255,0)。 ((,RGE))。 (―你失敗了! ‖,getWidth()/240,getHeight()/220,|)。 flushGraphics()。 try { (3000)。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1