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

正文內(nèi)容

基于j2me技術(shù)的手機游戲開發(fā)——瘋狂賽車畢業(yè)論文(參考版)

2025-06-27 02:55本頁面
  

【正文】 // 賽車掛檔數(shù)字 speedlevel = new GameSprite(Image .createImage( /image/whee/), 24, 32)。// 游戲的fuel和demage提示 panel = ( /image/whee/)。// 游戲的主背景 ni = new GameSprite( ( /image/fi/))。// 初始化賽道數(shù)據(jù) pa = ( /image/sf/)。// 初始化隨機數(shù)生成器 加載游戲相關(guān)的資源加載游戲資源包括初始化游戲并繪制游戲的各個部分:加載賽道數(shù)據(jù)、玩家賽車、對手賽車、賽道上的行車、賽道旁邊的樹、路燈、游戲主背景、城市的背景、賽車的方向盤和掛檔手柄的圖片等等。 pRocketEgine = false。 pRIGHT = false。// 初始化車型選擇界面 pUP = false。// 設(shè)置為全屏模式 = mi。// Fire鍵是否被按下 構(gòu)造方法構(gòu)造方法主要完成初始化游戲成員及一些全局?jǐn)?shù)據(jù)的工作、獲得MIDlet類的引用以及實現(xiàn)父類GameCanvas的主要構(gòu)造方法等。// 右方向鍵是否被按下 boolean pLEFT。// 上方向鍵是否被按下 boolean pDOWN。// 路邊自由行走的面包車和出租車 Enemy av。// 車型選擇界面 AroundRoad ar[]。其中包括了游戲的三種游戲角色,下半部分代表了鍵盤檢測時用到的主要變量如下: final CrazyRacecarMIDlet mi。// 賽道開始畫的起始X坐標(biāo) final int trackLong = 76。// 本地手機畫布的高度 final int positionY = 140。// 游戲的刷新頻率 public final int Width = getWidth()。// 手機右選擇鍵 private final int KEY_Left_Selection = 6。 游戲主要常量游戲畫布中定義了大量的常量來代表游戲中相關(guān)的各個成分,例如游戲的刷新頻率、畫布的寬度和高度等。// 退出游戲 } } 游戲畫布的實現(xiàn)游戲畫布負(fù)責(zé)處理游戲的大部分工作,包括檢測用戶輸入、處理游戲邏輯和繪制游戲畫面,所有這些工作都被放置在游戲線程中完成。// 游戲說明 else if ((About Game)) ()。// 游戲娛樂選項 else if ((History Records)) ()。// 新游戲 else if ((Game Level)) ()。// 獲得相應(yīng)的選擇項 if ((Continue)) ()。在本游戲菜單中的各個選項的事件處理方式,是根據(jù)選擇的不同回調(diào)MIDlet的相應(yīng)方法,讓MIDlet類來負(fù)責(zé)屏幕的切換。// 在頂部刪除該選項 hasC = false。 // 在頂部插入該選項 hasC = true。這個選項添加與否取決于hasC布爾變量,該變量代表繼續(xù)游戲選項是否存在,也可以這樣理解游戲是否是在游戲中暫停而退到主菜單界面的。 setCommandListener(this)。 append(About Game, null)。 append(How To Play, null)。// 一下為添加各種選項, append(Game Level, null)。 = mi。圖48 游戲菜單在兩種情況下出現(xiàn)的界面 構(gòu)造方法MenuList類是List類的子類,并且實現(xiàn)了CommandListener接口,下面的程序首先實現(xiàn)了List類即父類的構(gòu)造方法,然后添加七個基本選項的方法如下: MainMenu(CrazyRacecarMIDlet mi) { super(Crazy Racecar, )。如果游戲被暫停,在菜單列表的頂部還有一個額外的菜單項“Continue”。 (ne)。 }dismiss方法將回調(diào)MIDlet類的splashScreenDone()方法。 (1, v 100, g, 140, 56)。 (1, crazy, g, 25, 18)。 (0, 0, getWidth(), getHeight())。// 由第一個閃屏切換到第二個閃屏}游戲信息閃屏類SplashCanvas類的實現(xiàn)方法和畢設(shè)信息類的實現(xiàn)方法基本一樣只是對paint(Graphics g)方法和dismiss()方法進(jìn)行了修改。// 啟動定時任務(wù) } private void dismiss() { ()。 } }。 ti = new Timer()。要實現(xiàn)按任意鍵切換到下一屏幕只須要在 keyPressed(int keyCode)方法中調(diào)用 dismiss ()即可。在 start()方法被調(diào)用的時候此計時器開始生效,并加入一個計劃任務(wù),讓它在 3 秒后調(diào)用 dismiss()方法。// 利用對象成員的方法繪制文字信息 }閃屏出現(xiàn)后按任意鍵可以切換到下一屏幕,也可以在一定時間后自動切換。 y += () + SPLASH_ROW_SPACING。 i++) { (0xFF0000)。 for (int i = 0。 Font font = (, , )。 x1++) (backGround, x1, 0, 20)。 for (int x1 = 0。// 計算x軸起始繪制位置 (0, 0, 0)。 int y = 20。我們先使用了 ()方法獲得屏幕的高度,內(nèi)容居中顯示簡單得多,只需計算出屏幕的水平中心坐標(biāo),并在繪制的時候?qū)ζ鋮?shù)設(shè)置為 | 即可。兩個閃屏界面在模擬器中的顯示見圖46和圖47。// 手機背景光閃爍續(xù)時間為times } 游戲閃屏的實現(xiàn)本游戲制作了兩個閃屏(Splash),分別用來顯示畢設(shè)信息和游戲信息。代碼如下:void virbate(int times) { (this).vibrate(times)。 notifyDestroyed()。 // 在銷毀程序之前先停止游戲線程 }從游戲主菜單中選擇退出選項,從而退出。 // 使線程暫停 (this).setCurrent(())?;謴?fù)時,程序會再次調(diào)用startApp(),這時用戶需要判斷是否是恢復(fù)調(diào)用還是程序的開始調(diào)用,這在前面已經(jīng)講過了。在商用程序中,一個很重要的地方就是要求來電掛起或短信處理完畢后程序能夠繼續(xù)運行,而不會出現(xiàn)錯誤或者是重新開始。 (this).setCurrent(la)。amp。代碼如下:/** * 從游戲主菜單的各菜單中退回到當(dāng)前游戲畫布中 */ void settingsScreenBack(Displayable la) { mO = null。// 游戲未結(jié)束,添加繼續(xù)游戲按鈕 } (this).setCurrent(me)。// 游戲已經(jīng)結(jié)束,刪除繼續(xù)游戲按鈕 writeGameInfo()。 (this).setCurrent(cr)。// 子界面的標(biāo)題 String ba = BACK。代碼如下:/** * 游戲說明選項 */ void mainMenuAboutGame() { // 游戲說明的內(nèi)容 String ab = crazy racecar\nVersione: \n\nmade in china + \n njit dkj041 \nyeleiyu\n\n j2meGame Design。 // 在主游戲菜單中添加繼續(xù)菜單 gC = true。 (this).setCurrent(())。// 重新顯示游戲畫布 } else { gM = new GameScreen(this)。 if (gC) { ()。 mL = null。如果是則重新初始化游戲數(shù)據(jù),并把顯示權(quán)重新交給游戲畫布。// 把子菜單設(shè)為當(dāng)前界面 }從主游戲菜單中選擇開始游戲,首先判斷游戲是不是從中斷中剛恢復(fù)。 }進(jìn)入游戲難度選擇選項,從中可以進(jìn)行難度的選擇: /** * 進(jìn)入游戲難度選項 */ void mainMenuGameLevel() { if (mL == null) mL = new MenuGameLevel(this, me)。如果游戲中斷,從主菜單中可以選擇繼續(xù)游戲選項,顯示游戲畫布。 // 已經(jīng)初始化完畢 } } 屏幕切換前面已經(jīng)講述過MIDlet主類起到一個狀態(tài)機的作用,負(fù)責(zé)各個屏幕之間的切換。 !initDone) { // 如果還沒有初始化完畢 ().startBgPlayer()。 // 啟動后臺的初始化線程 } public void run() { init()。 // 檢測是否初始化完畢 (this).setCurrent(ne)。當(dāng)閃屏結(jié)束后,將會調(diào)用splashScreenDone()方法,在這個方法里將檢測初始化是否完畢,如果還沒有則繼續(xù)初始化,如果已經(jīng)完畢則顯示游戲菜單。在run()方法中將會進(jìn)行一些初始化工作,這包括初始化聲音和開始播放背景音樂等。前面一小節(jié)已經(jīng)介紹過在startApp()方法中,當(dāng)?shù)谝淮螁佑螒驎r,CrazyRacecarMIDlet類會把顯示權(quán)交給第一個閃屏。 實現(xiàn)閃屏游戲的開始將會依次出現(xiàn)兩個閃屏,它們將會停留一小段時間,然后才進(jìn)入游戲菜單。 游戲的主類的實現(xiàn)MIDlet用作一個狀態(tài)機來管理各種屏幕以及它們之間的轉(zhuǎn)換。 // 重新開始游戲線程 } }在startApp()方法中在執(zhí)行任何操作之前當(dāng)然要先判斷程序是否是第一次啟動,由此來決定將游戲的顯示權(quán)交給閃屏還是游戲畫布。amp。 } else { (this).setCurrent(cu)。 (this).setCurrent(pr)。CrazyRacecarMIDlet實例構(gòu)造后自動調(diào)用startApp()方法,在這個方法中我們生成了一個SplashCanvas類的實例pr,利用Display類的API方法setCurrent()方法把該閃屏類的實例設(shè)置為當(dāng)前界面,然后調(diào)用pr的start()方法開始定時任務(wù),代碼如下:/* * 啟動游戲,開始啟動第一個閃屏 */ public void startApp() {Displayable cu = (this).getCurrent()。在CrazyRacecarMIDlet類的成員中有一個MainMenu類和StringPrint類的實例。第八行和前面的清單文件的最后一行相同。第六行和前面的清單文件的第六行相同。第四行是MIDlet Suite的名稱,在部署JAR和JAD文件到手機時,一定要確保MIDletName的正確,它的值是相應(yīng)的JAR文件的名字,和前面講解的清單文件的第三行相同。因為MIDlet可以通過網(wǎng)絡(luò)下載,所以這里可以指出下載地址。第二行是MIDlet Suite的JAR文件的大小,以字節(jié)為單位。本游戲的JAD文件內(nèi)容如下圖所示。游戲軟件的最終形式一般還配有一個JAD文件,即應(yīng)用程序描述文件,它包含該程序的MIDlet信息。第六行是軟件的版本號。該行使用了都好分為了三段。第四行是程序的供應(yīng)商。第二行“MicroEditionConfiguration: ”。 圖43 游戲文件層次結(jié)構(gòu)圖 游戲的啟動管理游戲的最終形式是一個JAR格式的文件,這個文件實際上是一個以ZIP格式的壓縮文件。類的結(jié)構(gòu)如圖42所示。 游戲流程圖本游戲的主要流程圖如下所示。在有電話呼入或者收到短信時,需要保存當(dāng)前的狀態(tài),當(dāng)用戶處理完畢,精確恢復(fù)程序到原來的狀態(tài)。持久性處理就是游戲相關(guān)數(shù)據(jù)的保存、資源的載入和游戲的進(jìn)度保存。關(guān)于菜單的處理,包括可以選擇的進(jìn)入游戲、繼續(xù)游戲、游戲等級、歷史數(shù)據(jù)、幫助和游戲選項等。本游戲中屬于該層的主要是GameRecord類。 數(shù)據(jù)持久層。本游戲中屬于該層的有GameScreen類、GameSprite類、ArroundRoad類和Enemy類等。 業(yè)務(wù)邏輯層。在本游戲中屬于該層的有SplashCanvas類、MyInfoCanvas類、MainMenu類、MenuGameLevel類、MenuOption類、StringPrint類、MenuStringPrint類、OnOffMenu類、SoundEffects類和CarSelect類等。 業(yè)務(wù)表現(xiàn)層[02] 。本程序采用三層程序架構(gòu),業(yè)務(wù)表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層。 第四章 系統(tǒng)設(shè)計與實現(xiàn)本章主要對游戲的整體框架進(jìn)行設(shè)計,并實現(xiàn)游戲的主類、游戲的閃屏類、游戲菜單、游戲畫布、碰撞檢測、鍵控處理和游戲的人工智能策略等。 游戲應(yīng)該具有暫停功能;216。 玩家在每次開始時都有四種車型可以選擇,每輛車的最高速度都不一樣。 在雙方都未到達(dá)終點以前,無論哪個賽車生命值生命值為零或能量值為零,該賽車就算失敗。 玩家在車速已經(jīng)到達(dá)120時,可以啟動火箭引擎,迅速達(dá)到該車所能達(dá)到的最大值,但是每一次啟動都會消耗正常行駛時能量值的三倍。 每個賽車都有相同的生命值和能量值(汽油)。 玩家賽車與游戲賽車在賽道上比賽,在行駛過程中會遇到各種各樣的行車,玩家要盡量避開NPC不與他們碰撞,因為每次碰撞都會減少生命值。 所有角色唯一的死亡方式為沒能量或被對方撞死。 如果玩家移動方向鍵,則該角色按該方向沿著賽道前進(jìn)。 角色可以在賽道地圖允許的框架內(nèi)沿著賽道左右進(jìn)行移動。 角色出生時具有
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1