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

正文內(nèi)容

基于j2me的手機(jī)游戲逃亡者的設(shè)計(jì)與實(shí)現(xiàn)(文件)

 

【正文】 或者是移動(dòng)電話的存儲(chǔ)器大小。 在 MIDP中,每一個(gè)按鍵事件將產(chǎn)生一個(gè)按鍵代碼。使用這些按鍵可以確保應(yīng)用程序在任何符合 MIDP規(guī)范的移動(dòng)設(shè)備上運(yùn)行 。 中國(guó)鐵道出版社 畢業(yè)設(shè)計(jì)(論文) 第 14 頁(yè) 共 42 頁(yè) 我們所創(chuàng)建的動(dòng)畫(huà),是使用線程把所準(zhǔn)備的多張圖像按順序描繪出來(lái)。 將 Runnable接口作為實(shí)現(xiàn)的類,必須將 Runnable接口的 run( )方法重新定義。 } Protected void paint(Graphics g){ } } 只在以 Runnable接口為實(shí)現(xiàn)的類中再定義 run() 方法,是不能讓線程運(yùn)行的。 線程類由于會(huì)在 Threadstart()方法被調(diào)用出來(lái)后調(diào)用 Runnablerun( )方法,因此編寫(xiě)在 run()方法中的處理將會(huì)被自動(dòng)運(yùn)行。 通 常,當(dāng)一個(gè)應(yīng)用程序停止運(yùn)行,例如用戶從一個(gè)主頁(yè)切換到另一個(gè)主頁(yè)時(shí),它就會(huì)調(diào)用 stop()方法來(lái)終止原主頁(yè)中正在運(yùn)行的所有線程 [10]。 J2ME 無(wú)線通信技術(shù)應(yīng)用開(kāi)發(fā) (4)輸入 /輸出的多樣性 :手機(jī)不可能有 PC機(jī)標(biāo)準(zhǔn)鍵盤(pán)那么多按鍵,也沒(méi)有鼠標(biāo)。 手機(jī)游戲開(kāi)發(fā)工具軟件 J2ME Wireless Toolkit(J2MEWTK)是 Sun公司所發(fā)布的官方版 MIDP應(yīng)用程序開(kāi)發(fā)工具,它為編寫(xiě)和測(cè)試 M工 DP應(yīng)用程序提供了一個(gè)完整的開(kāi)發(fā)環(huán)境。 J2MEWTK 提供菜單或按鈕方式的命令。 我們來(lái)安裝制作 JAVA 所必需的開(kāi)發(fā)配套元件 J2SE SDK。因?yàn)槟愕?PC 的 OS 是 WINDOWS,所以你可以試著點(diǎn)擊 [Windows Installation, Multilanguage],來(lái)下載安裝程序。這里安裝的程序就用默認(rèn)的程序,安裝地址也用默認(rèn)的 [c:\\]。用鼠標(biāo)右鍵點(diǎn)擊桌面上 “我的電腦 ”圖標(biāo),在顯示選單中選擇 “屬性 ”。 JAVA 教程 畢業(yè)設(shè)計(jì)(論文) 第 16 頁(yè) 共 42 頁(yè) 境變量設(shè)定窗口。輸完后點(diǎn)擊 “確定 ”鍵。于是顯示安裝程序選擇畫(huà)面,點(diǎn)擊 [Windows Platform]的安裝程序,并下載。 設(shè)定正在安裝的 J2SDK 的路徑。 在程序文件夾進(jìn)行注冊(cè),這里使用預(yù)設(shè)的 [J2ME Wireless ],然后點(diǎn)擊 [Next]。 下面說(shuō)明一下 J2ME 手機(jī)游戲開(kāi)發(fā)環(huán)境: Java 手機(jī)游戲的真實(shí)運(yùn)行環(huán)境是 Java 手機(jī)。在漆黑一片的宇宙中,停著一架小飛船,突然四面八方出現(xiàn)很多黃色的小點(diǎn)向小飛船聚集過(guò)來(lái),小飛船憑借速度優(yōu)勢(shì)和飛行技術(shù)從黃點(diǎn)之間的夾縫中飛過(guò),之后又落入新的包圍圈中,直至被黃點(diǎn)擊毀。 圖 41 《特訓(xùn):是男人就撐過(guò) 30 秒》游戲畫(huà) 面 :手機(jī) 游 戲 “逃亡者 ”是一款較為小型的手機(jī)游戲,根據(jù)已有的手機(jī)游戲設(shè)計(jì)經(jīng)驗(yàn),利用 J2ME來(lái)可以實(shí)現(xiàn)游戲的功能。初始情況下,游戲菜單有三個(gè)選項(xiàng),它們分別是開(kāi)始游戲,游戲說(shuō)明和高分記錄。當(dāng)游戲結(jié)束時(shí)則進(jìn)入游戲結(jié)束屏 幕,屏幕上顯示了玩家的成績(jī)和等級(jí),以及游戲的最好成績(jī),如果當(dāng)前成績(jī)是最好成績(jī),則手機(jī)震動(dòng)并播放音樂(lè)慶祝成功。 圖 43 游戲系統(tǒng)流程圖 程序中一個(gè)有 10 個(gè)類,其中 MIDlet 主類負(fù)責(zé)各個(gè)屏幕的切換,它們是閃屏屏幕、菜單、介紹屏幕、高分屏幕、游戲屏幕,游戲結(jié)束屏幕。 J2ME 手機(jī)游戲開(kāi)發(fā)技術(shù)詳解 SoundEffects Bullets Sprite Escapee :Sprite escapeeCanvas :GameCanvas escapeeMIDlet :MIDlet SplashScreen :Cancas GameOverScreen :Canvas HighScoreSCreen :Form InstructionsScreen :From MenuList :List 閃屏 新游戲 游戲說(shuō)明 最高記錄 繼續(xù)游戲 退出 游戲 游戲說(shuō)明 Back 最高記錄 Back 游戲成績(jī) 等級(jí) 最好成績(jī) 非游戲操作 游戲結(jié)束 基于 J2ME 的手機(jī)游戲 設(shè)計(jì) 第 19 頁(yè) 共 42 頁(yè) 游戲的線程主要由三個(gè)部分組成:檢測(cè)鍵盤(pán)輸入(與玩家交互),更新游戲場(chǎng)景(處理游戲邏輯),繪制游戲畫(huà)布。 詳情見(jiàn)附錄。 JAR 包含組成 MIDlet 套件的類文件和資源。其主要工作為: J2ME平臺(tái)的用途和基于 J2ME平臺(tái)手機(jī)開(kāi)發(fā)的 國(guó)內(nèi)外發(fā)展情況。 “逃亡者 ”,重點(diǎn)解決了游戲角色的表示,游戲角色及游戲流程的控制,對(duì)游戲按鍵事件的處理,并對(duì)整個(gè)游戲開(kāi)發(fā)過(guò)程做了一個(gè)詳細(xì)的介紹。Java 程序設(shè)計(jì)入門(mén)教程 J2ME 應(yīng)用程序開(kāi)發(fā)手機(jī)、 PDA 程序開(kāi)發(fā)捷徑 J2ME 無(wú)線通信技術(shù)應(yīng)用開(kāi)發(fā) JAVA 教程 [12] Jason Lam、 Deaboway Chou譯 java 語(yǔ)言程序設(shè)計(jì) J2ME 游戲開(kāi)發(fā)(第一版) 感謝答辯組對(duì)本畢業(yè)設(shè)計(jì)的考核,如果可以得到各位專家的認(rèn)可將對(duì)我的學(xué)習(xí)和工作給予極大的鼓勵(lì)。 畢業(yè)設(shè)計(jì)(論文) 第 24 頁(yè) 共 42 頁(yè) 附錄 根據(jù)詳細(xì)設(shè)計(jì) 對(duì)各個(gè)類進(jìn)行編碼實(shí)現(xiàn) : escapeeMIDlet 的實(shí)現(xiàn) MIDlet 被用作一個(gè)狀態(tài)機(jī)來(lái)管理各種屏幕以及它們之 間的轉(zhuǎn)換。游戲閃屏使用得當(dāng)將會(huì)增加整個(gè)游戲的視覺(jué)效果,而且雖然畫(huà)面在此期間停留不動(dòng) ,后臺(tái)程序卻是忙碌的,一般在此期間完成基本的初始化工作。 //獲得關(guān)于顯示的設(shè)備上下文 if (current == null) { (this).setCurrent(new SplashScreen(this))。 //啟動(dòng)幕后的初始化線程 } public void run() { init()。 //初始化菜單 myCanvas = new escapeeCanvas(this)。 //在屏幕上顯示游戲菜單 } (2)屏幕切換 從菜單中選擇開(kāi)始游戲,首先初始化 Canvas 的游戲數(shù)據(jù),顯示游戲畫(huà)布,然后啟動(dòng)游 戲線程: void menuListNewGame() { ()。 //顯示高分紀(jì)錄屏幕 } 從菜單中選擇游戲說(shuō)明,和選 擇顯示高分紀(jì)錄類似: void menuListInstructions() { (this).setCurrent(new InstructionsScreen(this))。 //退出游戲 } 從游戲介紹退回菜單,將顯示權(quán)交還游戲菜單: void instructionsBack() { (this).setCurrent(menuList)。 //告知菜單游戲已經(jīng)開(kāi)始(暫停狀態(tài)) (this).setCurrent(menuList)。 //結(jié)束畫(huà)面 } 從游戲結(jié)束畫(huà)面返回,在屏幕上顯示菜 單: void gameOverDone() { (this).setCurrent(menuList)。 DataInputStream dis = null。 dis = new DataInputStream(bais)。 //關(guān)閉流 } catch (IOException ex) { // 捕獲 IO 異常 } } if (bais != null) { 基于 J2ME 的手機(jī)游戲 設(shè)計(jì) 第 27 頁(yè) 共 42 頁(yè) try { ()。 ByteArrayOutputStream baos = null。 //輸出字節(jié)流 dos = new DataOutputStream(baos)。 //添加記錄 } else { (1, data, 0, )。 //關(guān)閉數(shù)據(jù)存儲(chǔ) } catch (RecordStoreException ex) { //捕獲數(shù)據(jù)存儲(chǔ)異常 } } } } 在讀取游戲或者從玩家前面的游戲記錄中獲取到成績(jī)之后,立刻寫(xiě)入 rms 存儲(chǔ)。 //保存最好成績(jī) return true。 //獲得當(dāng)前設(shè)備的顯示上下文 if (current == myCanvas) //如果屏幕上的顯示內(nèi)容為游戲畫(huà)布 { ()。 //告知系統(tǒng)已經(jīng)銷毀程序,可以完全退出 } (5)加載圖片資源 MIDlet 中實(shí)現(xiàn)了根據(jù)字符串類型的文件名來(lái)加載圖片資源的通用方法,其他各個(gè)類都可以使用這個(gè)方法來(lái)加載圖片。 //返回圖片對(duì)象 image } (6)游戲特效 其代碼如下 : (mills 代表持續(xù)的時(shí)間。在第一次繪制屏幕后,它將圖像釋放作為垃圾回收(把圖片設(shè)為 null)并回調(diào) MIDlet 進(jìn)行初始化工作。 SplashScreen( escapeeMIDlet midlet) { = midlet。 } (2)繪制屏幕 閃屏屏幕的繪制是在 paint 方法中完成,當(dāng)顯示閃屏?xí)r會(huì)自動(dòng)調(diào)用 paint 方法。 //獲得畫(huà)布寬度 int CanvasHeight = getHeight()。 //畫(huà)筆顏色設(shè)置為紅色 (1, 1, CanvasWidth3, CanvasHeight3)。 int centerX = CanvasWidth / 2。 //分別繪制四次,相差 1 個(gè)象素,呈現(xiàn)文本帶有背景的感覺(jué) drawText(g, centerX, centerY + 1)。 //將畫(huà)筆顏色設(shè)置為黑色 drawText(g, centerX, centerY)。 //文本總的高度 int topY = centerY textHeight / 2。 //等待 3 秒 } catch (InterruptedException e) { //捕獲線程中斷異常 } dismiss()。 (版本 : + (MIDletVersion), centerX,topY + fontHeight, | )。 //回調(diào) midlet 的方法,通知程序在幕后做初始化 } private void drawText(Graphics g, int centerX, int centerY) { int fontHeight = ().getHeight()。 drawText(g, centerX + 1, centerY)。 (0x00FFFFFF)。 //在屏幕中央繪制閃屏圖片 splashImage = null。 //畫(huà)筆顏色設(shè)置為白色 (0, 0, CanvasWidth, CanvasHeight)。在游戲主屏幕中使用該方法要小心,因?yàn)? 文本繪制可能很慢,而該方法使速度減慢為原來(lái)的五分之一。 splashImage = (/)。 通過(guò)這種方法, MIDlet 可在顯示 splash 屏幕的同時(shí)進(jìn)行初始化。 //手機(jī)震動(dòng),持續(xù)時(shí)間為 millis } void flashBacklight(int millis) { (this).flashBacklight(millis)。 try { image = (filename)。 //在銷毀程序之前先停止游戲線程 } } private void quit() { destroyApp(false)。 //返回 false 表明沒(méi)有最新的成績(jī)紀(jì)錄產(chǎn)生 } } 在生成最好成績(jī)之后(無(wú)論是讀取存儲(chǔ)或者玩家在游戲中動(dòng)態(tài)產(chǎn)生的),就需要讓游戲結(jié)束屏幕或者高分榜知道這個(gè)最好成績(jī): long getBestTime() 基于 J2ME 的手機(jī)游戲 設(shè)計(jì) 第 29 頁(yè) 共 42 頁(yè) { return hasBestTime ? bestTime : 1。 //設(shè)置標(biāo)志位為真,表示有最好成績(jī) bestTime = time。 //關(guān)閉流 } catch (IOException ex) { //捕獲 IO 異常 } } if (baos != null) { try { ()。 //寫(xiě)入最佳成績(jī) byte[] data = ()。 try { rs = (RS_NAME, true)。 //關(guān)閉存儲(chǔ) } catch (RecordStoreException ex) { //捕獲存儲(chǔ)異常 } } } } 除了讀取存儲(chǔ)之外,如果游戲產(chǎn)生了一個(gè)最新成績(jī),還需要保存到數(shù)據(jù)存儲(chǔ)中去。 //讀取長(zhǎng)整型值 hasBestTime = true。 //記錄名為 RS_NAME 的字符串 byte[] data = (1)。 //讀取記錄還沒(méi)有獲得最好成績(jī) RecordStore rs = null。 //中止游戲線程 (false)。 //顯示游戲菜單 } 從游戲中切換到菜單,需要中止游戲線程并且告知菜單游戲正在進(jìn)行中,以便讓菜單添加繼續(xù)游戲的選項(xiàng): void GameCanvasMenu() { ()。 //顯示游戲畫(huà)面 ()。 //顯示游戲畫(huà)布 ()。 //標(biāo)志位為真表示初始化完畢 } 基于 J2ME 的手機(jī)游戲 設(shè)計(jì) 第 25 頁(yè) 共 42 頁(yè) } void splashScreenDone()
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1