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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于javame無線網(wǎng)絡(luò)移動(dòng)端的俄羅斯方塊游戲的實(shí)現(xiàn)—論文-文庫吧資料

2024-12-11 19:30本頁面
  

【正文】 K 中打開一個(gè)項(xiàng)目、把源文件打包成 JAR包、產(chǎn)生混淆包的方法和過程。} Title 屏將顯示 如下圖: 圖 26 結(jié)束并重新開始游戲狀態(tài)圖 結(jié) 論 本系統(tǒng)是一個(gè)基于 Java ME 平臺(tái)的無線網(wǎng)絡(luò)移動(dòng)端的俄羅斯方塊游戲,利用Java ME Wireless Toolkit(WTK)開發(fā)包工具在無線網(wǎng)絡(luò)移動(dòng)端上實(shí)現(xiàn)經(jīng)典的俄羅斯方塊游戲。 ()。 = new Random()。 //初始化數(shù)組 = ()。 = new TetrisPiece()。其實(shí)現(xiàn)由 init()方法控制,其代碼如下: private void init() { = new TetrisBoard()。 } 如下圖: 圖 25 方塊下落游戲圖像刷新狀態(tài)圖 當(dāng)游戲結(jié)束時(shí)立即顯示 title 屏,計(jì)算并顯示出這 次游戲的最高分。 x++) { if( == (x, rowY)) { // 有空方塊,行不被填充 return false。在 中的 checkRowCompleted()方法實(shí)現(xiàn)了此功能,其代碼如下: public boolean checkRowCompleted(int rowY) { for(int x = 0。//得到翻轉(zhuǎn)后的新坐標(biāo) } } 方塊處理模塊功能 對當(dāng)前下落方塊的處理,主要功能是及時(shí)刷新圖像,保證方塊狀態(tài)及時(shí)更新。 int rotateY = pivotY + dy。 } else { // 如向右旋轉(zhuǎn) dy *= 1。 int dy = blockX pivotX。 int blockY = (i)。 i 。 //判斷翻轉(zhuǎn)方向 (x,y) (y,x) 如向左旋轉(zhuǎn): (y,x) 如向右旋轉(zhuǎn): (y,x) (y+1,x+1) (y+1,x+1) = !。 (3, x + 2, y)。 (1, x , y)。//只能進(jìn)行兩個(gè)方向的旋轉(zhuǎn),設(shè)置類型為 TOGGLE = true。 下面用方塊 I 舉例說明其進(jìn)行翻轉(zhuǎn)判斷的代碼: private void setAsNewIPiece(int x, int y) { = 。} 游戲 恢復(fù)階段 狀態(tài),如下圖: 圖 19 游戲恢復(fù)狀態(tài)圖 方塊處理模塊 方塊處理模塊結(jié)構(gòu) 俄羅斯方塊游戲中出現(xiàn)的七種方塊是由 4 個(gè)小塊組合而成。 // 進(jìn)入運(yùn)行狀態(tài)并下落 ()。} 游戲 暫停階段 畫面如下: 圖 18 游戲暫停狀態(tài)圖 當(dāng)點(diǎn)擊右軟件恢復(fù)游戲后,方塊從暫停位置繼續(xù)下落,這里用了resumeGame()來實(shí)現(xiàn)此功能,代碼如下: private void resumeGame() { // 把恢復(fù)命令替換成暫停命令 ()。 // 進(jìn)入暫停狀態(tài)并停止下落 ()。 } } 在 pauseApp方法中調(diào)用了 pauseGame()方法,其實(shí)現(xiàn)代碼如下: private void pauseGame() { // 把暫停命令替換成恢復(fù)命令 ()。實(shí)現(xiàn)效果如下圖: 圖 17 游戲進(jìn)行狀態(tài)圖 在 前面 部分通過圖 9的 系統(tǒng)生命周期流程圖,已經(jīng)了解了游戲中斷處理的過程。 } 為了增加玩家在游戲過程中的游戲性,下落 的方塊設(shè)置成隨機(jī)生成,這里利用 方法得到隨機(jī)數(shù),下面是隨機(jī)生成方塊功能的部分代碼,如下: private int getRandomPieceType() { return (() % ) + 1。 i++) { (i)。 // 為下一次重置 } } // 清除最上面的完成行數(shù) for(int i = 0。 } if((y)) { numClearedRows++。 y = 0。 } } int numClearedRows = 0。 i++) { int rowY = (i)。 // 檢查方塊的每一行,看是否以完成 for(int i = 0。 // 線程睡眠 } catch(InterruptedException ie) { }}} 游戲規(guī)則模塊功能 游戲規(guī)則模塊實(shí)現(xiàn)俄羅斯方塊游戲的主要功能包括,消減積滿的 行、快速下落、方塊翻轉(zhuǎn)、分?jǐn)?shù)計(jì)算、下落碰撞檢測、隨機(jī)生成方塊。 } else { ()。 難度選擇模塊功能 模擬器程序運(yùn)行,在應(yīng)用程序列表里顯示可以載入運(yùn)行的模擬程序,如下圖: 圖 13 載入程序 點(diǎn)擊運(yùn)行程序后,在 title 屏顯示游戲名稱、作者、最高分記錄和按鍵提示,點(diǎn)擊數(shù)字鍵輸入 09中的一個(gè)數(shù)字,以選擇不同難度的關(guān)卡,如下圖: 圖 14 運(yùn)行游戲 在 title 屏,也可以點(diǎn)擊左軟鍵退出程序。 COLOR_BLACK為 TetrisConstants下定義的預(yù)設(shè) RGB顏色,初始值為 0x00000000。}} 其中, TOP_VISIBLE_ROW為 TetrisConstants下定義, Y坐標(biāo)的從行 0開始索引的位置,初始值為 2。 } else { //繪制顏色 ()。 // 繪制一個(gè)實(shí)際的方塊覆蓋在陰影上 (blockType, g)。 if( != blockType) { // 繪制下落時(shí)的陰影 ()。} 下面是 paintBlock()方法的實(shí)現(xiàn)代碼: private void paintBlock(int x, int y, int blockType, Graphics g) { int blockX = + ( * x)。 (x, y, width, height)。 (x, y, width, height)。建了兩個(gè)包作為功能劃分,分別為: ui 包和 model 包。 判斷游戲是否結(jié)束 圖 8 游戲規(guī)則模塊圖 游戲中斷處理流程 中斷處理是移動(dòng)設(shè)備程序生命周期的重要組成特性,包括下圖三種階段: 圖 9 系統(tǒng)生命周期圖 5 系 統(tǒng)實(shí)現(xiàn)與測試 系統(tǒng)源文件結(jié)構(gòu) 本系統(tǒng)由 10個(gè)類組成并實(shí)現(xiàn)全部功能。比如, 積滿 一行后消減;能夠快速直接的下落;記錄游戲最高 分;方塊翻轉(zhuǎn);分?jǐn)?shù)計(jì)算; 隨機(jī)生成方塊 ,見下圖: 進(jìn)入游戲 按鍵輸入 (0- 9)選 擇關(guān)卡難度 處理輸入 選擇 關(guān)卡難度 進(jìn)入關(guān)卡 0 進(jìn)入關(guān)卡 1 進(jìn)入關(guān)卡 2 進(jìn)入關(guān)卡 3 。 難度選擇模塊 用戶 在 title 屏按鍵數(shù)字鍵選擇 0- 9種游戲難度,進(jìn)入相對應(yīng)游戲關(guān)卡 。 系統(tǒng)總體結(jié)構(gòu) 系統(tǒng)開發(fā)的主要任務(wù)是俄羅斯方塊游戲在無線移動(dòng)端的實(shí)現(xiàn)。 4 游戲系統(tǒng)分析設(shè)計(jì) 系統(tǒng) 解決方案 本系統(tǒng)在 Windows XP 的操作系統(tǒng)下,以 Java Micro Edition Wireless Toolkit 為開發(fā)工具,用中文版 UltraEdit 做為代碼編輯器而實(shí)現(xiàn)的。這意味著,不論是否熟悉計(jì)算機(jī)游戲,任何人都可以走過來并立即開始玩它。 (5)簡單易學(xué),容易操作: 俄羅斯方塊的真正杰出之處在于它的游戲機(jī)制簡單平樸,淺顯易懂。 (4)最高分機(jī)制: 俄羅斯方塊引入一個(gè)計(jì)分模式,它給玩家計(jì)分并把分?jǐn)?shù)記錄在高分排行榜上。當(dāng)積木疊在長方盒子的底部時(shí),玩家可以看到自己所犯的錯(cuò)誤,在游戲結(jié)束前,他還是有時(shí)間想一想如何把后面的積木拼放得更合理些。積木一堆到盒子頂部,玩家就輸了。俄羅斯方塊正是這樣一個(gè)游 戲。一旦玩家拼好了一幅拼圖,只要他還記得他是怎么拼的,那么這個(gè)拼圖就對他再也無挑戰(zhàn)了。每次游戲都以失敗而告終,沒有人真正能打敗這個(gè)游戲。這個(gè)游戲當(dāng)中沒有任何探險(xiǎn)成分在內(nèi),它不會(huì)讓玩 家真正大吃一驚,玩家能夠看到讓游戲順利進(jìn)行下去的所有信息,所以玩家輸了的話只能怪他自己。 俄羅斯方塊游戲的特性 (1)單屏游戲: 俄羅斯方塊全部反映在一個(gè)屏幕上。當(dāng)屏幕底端的方塊拼滿一橫行時(shí),這個(gè)層的方塊就會(huì)消失,而這一行以上的所有方塊都會(huì)下降一層。然后,這些積木慢慢地落向盒子底部,玩家可以把這些方塊左右移動(dòng)或旋轉(zhuǎn)。在游戲進(jìn)程中,積木落下來的速度越來越快,這樣對玩家的挑戰(zhàn)也就越來越大,游戲的難度也逐步增加。俄羅斯方塊中積木是從上面落下來。因而每個(gè)人玩這個(gè)游戲都會(huì)有一次不同的體驗(yàn)。 俄羅斯方塊 相當(dāng)于直角的智力拼圖游戲,或者其它一種“在這有限空間內(nèi)組織幾何體”的拼圖。 俄羅斯方塊 經(jīng)常被稱為拼圖游戲。一個(gè)最初的版本是Spectrum Holobyte 為 IBM 兼容機(jī)開發(fā)的游戲。 人們一開始并沒預(yù)料到它將會(huì)有如此廣泛的吸引力。 3 游戲設(shè)計(jì) 俄羅斯方塊游戲的背景 俄羅斯方塊是俄羅斯人阿列克謝 在需要監(jiān)視程序性能的時(shí)候,可以 在 EditPreferences 里 選中“ Enable Memory Monitor”,在下一次模擬器執(zhí)行的時(shí)候, 就可讀出程序運(yùn)行時(shí)的內(nèi)存消耗均值,消耗峰 值以及具體產(chǎn)生對象的個(gè)數(shù)使用情況。在 KToolBar 的 EditPreferences 里面提供很多實(shí)用的功能,如下圖: 圖 5 選擇 Preferences菜單 KToolBar 除了“產(chǎn)生包”,另外還有“產(chǎn)生混淆包”功能。形成的 JAR 保存在項(xiàng)目對應(yīng)的 bin 目錄下,如下圖: 圖 4 創(chuàng)建一個(gè)包 KToolBar 除了“產(chǎn)生包”,另外還有“產(chǎn)生混淆包”功能。 KToolBar 的生成功能只能幫將源代碼編譯并預(yù)先審核并不會(huì)幫產(chǎn)生 JAR 文件,如果要發(fā)布 MIDP 程序,除了 JAD 描述文件,還必須打包成 JAR 文件。 JAD描述文件與其指定的 JAR文件需在同一個(gè)目錄下。選擇打開項(xiàng)目, WTK 會(huì)把自身 apps 目錄下的應(yīng)用項(xiàng)目全部顯示出來,選擇“打開項(xiàng)目”后,能夠?qū)?apps 目錄下的 MIDlet 項(xiàng)目進(jìn)行開發(fā)更改, 見下圖: 圖 3 打開一個(gè)項(xiàng)目 直接運(yùn)行 MIDP應(yīng)用程序可以在程序組中直接選擇 Run MIDP Application? 。 安裝 WTK 后,將得到一個(gè)包括多種實(shí)用工具的開發(fā)包。它也提供了直接的方法來管理 MIDlet 項(xiàng)目并生成設(shè)置。即 MIDP 、 CLDC 、 WMA 、 MMAPI 、 Web Services(JSR 172)、 File and PIM APIs(JSR 75)、 Bluetooth and OBEX APIs(JSR 182)和 3DGraphics(JSR 184),同時(shí)也可以使用該版本開發(fā)面向 和 的應(yīng)用程序。 版只能夠開發(fā) 應(yīng)用程序, 版只能夠開發(fā) 應(yīng)用程序, 、 JTWI(,)可改用 或加入 )、自定義 (隨機(jī)組合 Configuration、 Profile 以及 Optional Package)三種環(huán)境下的應(yīng)用程序。每個(gè)版本都包括英語,日語,簡體中文,繁體中 文 4 個(gè)語種包。 該工具箱包含 的生成工具、實(shí)用程序以及設(shè)備仿真器。它的功能包括了編譯、打包、模擬執(zhí)行 MIDP 應(yīng)用程序。 Java ME Wireless Toolkit(WTK)簡介 Java ME Wireless Toolkit(WTK) 的全稱是: Java ME 無線開發(fā)工具包。 本系統(tǒng)的編譯環(huán)境選用 Java ME Wireless Toolkit(JWT)version ,這樣對于游戲中包含的類,字節(jié)碼驗(yàn)證器在打包前對它們進(jìn)行驗(yàn)證。應(yīng)用程序描述符 (JAD 文件 )提供了和一個(gè) JAR 文件中包含的多個(gè) MIDlet 相關(guān)的描述信息。預(yù)驗(yàn)證在編譯之后發(fā)生,并生成一個(gè)新的 class 文件,這個(gè)文件是通過驗(yàn)證后等待測試或發(fā)布的。進(jìn)行這個(gè)預(yù)驗(yàn)證步驟的原因和移動(dòng)設(shè)備所使用的虛擬機(jī)的限制有關(guān)。 MIDlet 類存儲(chǔ)在 Java 字節(jié)碼文件中,擴(kuò)展文簡表層 (Profile) 配置層 (Configuration) Java 虛擬機(jī) (JVM) 件名 .class。其架構(gòu)圖如下: 圖 1 Java ME架構(gòu)圖 按照 MIDP 規(guī)范開發(fā)的 Java ME 應(yīng)用程序叫做 MIDlet。 Java ME 技術(shù)架構(gòu)分為:簡表 (Profile)、配置 (Configuration)和 Java 虛擬機(jī) (Java Virtual Machine)3 層,它們都構(gòu)建在本地操作系統(tǒng)之上。 Java SDK 是用 Java 進(jìn)行開發(fā)的一個(gè)標(biāo)準(zhǔn)開發(fā)工具包。應(yīng)用程序描述符 (JAD文件 )提供了和一個(gè) JAR文件中包含的多個(gè) MIDlet相關(guān)的描述信息。預(yù)驗(yàn)證在編譯之后 發(fā)生,并生成一個(gè)新的 class 文件,這個(gè)文件是通過驗(yàn)證后等待測試或發(fā)布的。進(jìn)行這個(gè)預(yù)驗(yàn)證步驟的原因和移動(dòng)設(shè)備所使用的虛擬機(jī)的限制有關(guān)。 MIDlet 類存儲(chǔ)在 Java 字節(jié)碼文件中,擴(kuò)展文件名 .class。 按照 MIDP 規(guī)范開發(fā)的 Java ME 應(yīng)用程序叫做 MIDlet。并且所有的跡象表明它將保持
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1