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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于java的俄羅斯方塊游戲設(shè)計(jì)(編輯修改稿)

2025-01-08 19:30 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 e level 的跨平臺(tái)。利用 Java 的 “Write once, run anywhere” 特性,我們可以真正達(dá)到程 序 只要寫(xiě)一次,拿到任何平臺(tái)上都可以執(zhí)行。利用 Java 撰寫(xiě)手機(jī)上的程 序 當(dāng)然有其缺點(diǎn),最廣為人知的可能就是執(zhí)行效率的問(wèn)題, Java 在執(zhí)行速度這個(gè)議題上一直讓人詬病。不過(guò)筆者認(rèn)為,隨著技術(shù)的發(fā)達(dá),將會(huì)有更快更省電的嵌入系統(tǒng)專(zhuān)用 CPU出現(xiàn), Java One 中也傳出將針對(duì) Java ME 開(kāi)發(fā)專(zhuān)用芯片,讓 Java 在 手機(jī)上的程 序 可以跑得更快,因此效率上的總是其實(shí)是可以忽略的。更何況,當(dāng) Sun 在設(shè)計(jì) Java ME 的時(shí)候,也用了很多方式企圖加快 Java 在手機(jī)上的執(zhí)行速度。因此,目前的移動(dòng)通信設(shè)備大廠幾乎采用 Java ME 平臺(tái) [11]。 中北大學(xué) 2021 屆 畢業(yè) 設(shè)計(jì)說(shuō)明書(shū) 第 8 頁(yè) 共 28 頁(yè) 3 系統(tǒng)分析 目標(biāo)任務(wù) 本 設(shè)計(jì) 是 一款 Java 小 游戲,由于其運(yùn)行在手機(jī)上,沒(méi)有 PC機(jī)上多畫(huà)面顯示和多任務(wù)操作,所以要求該游戲易于在用戶(hù)界面和游戲界面之間切換,它們之間的信息傳遞通過(guò)接口來(lái)實(shí)現(xiàn)。用戶(hù)界 面是為了讓用戶(hù)較快了解該游戲的模式,所以在用戶(hù)界面得設(shè)計(jì)版本信息顯示、游戲操作方式說(shuō)明、游戲運(yùn)行方式設(shè)定等功能,而游戲界面必須實(shí)現(xiàn)具體的游戲?qū)崿F(xiàn)功能,并設(shè)計(jì)事件監(jiān)聽(tīng)器監(jiān)聽(tīng)游戲運(yùn)行的狀態(tài)。 本 程 序 中要解決的 有關(guān)技術(shù) 問(wèn)題 (1) 手機(jī)游戲程 序 是一個(gè)小型的實(shí)時(shí)系統(tǒng),每秒鐘要運(yùn)行上千行程 序 ,繪圖事件和鍵盤(pán)事件都以很高的頻率在后臺(tái)等待響應(yīng)。 ,若有絲毫的差別都將很容易導(dǎo)致程 序 在運(yùn)行不久后可能出現(xiàn)嚴(yán)重錯(cuò)誤,甚至死循環(huán)。因此,其邏輯設(shè)計(jì)應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),需將所有可能發(fā)生的事件及意外情況 。 由于手機(jī)內(nèi)存小,存貯量低,所以 要求代碼具有很高的重用性,所以設(shè)計(jì)的時(shí)候就要把各種類(lèi)盡量分開(kāi)來(lái)寫(xiě),可以通過(guò)繼承或接口方法來(lái)實(shí)現(xiàn)類(lèi)對(duì)象的重新加載。 (2) 游戲都有一定的模式,手機(jī)游戲也不例外,所以為了增加可玩性,我們?cè)O(shè)置了相關(guān)難度的調(diào)節(jié)算法 。 (3) 游戲程 序 的基本結(jié)構(gòu)應(yīng)該包括:游戲主流程控制,游戲場(chǎng)景,游戲?qū)ο蠛陀脩?hù)操控。在 俄羅斯方塊 游戲中,游戲場(chǎng)景比較簡(jiǎn)單,只 需要手機(jī)屏幕顯示的固定矩形區(qū)域,游戲?qū)ο笠脖容^簡(jiǎn)單,只是 七種方塊 。用戶(hù)可以操作游戲?qū)ο?—— 方塊進(jìn)行 旋轉(zhuǎn), 左右, 下操作,如果用戶(hù)不進(jìn)行任何輸入, 方塊將以一定的速度下落到地面 。至于流 程控制,初始時(shí)游戲場(chǎng)景 為空 ,隨著游戲的進(jìn)行, 不斷有新的方塊落下 ,分?jǐn)?shù)也增加,當(dāng)分?jǐn)?shù)增加到一定程度,則 方塊下落 的速度加快 [12]。 (4) Java 是基于虛擬機(jī)的半解釋型編譯系統(tǒng),其執(zhí)行效率較 C++等完全編譯后的程 序 會(huì)低很多,程 序 如果不進(jìn)行精簡(jiǎn)和優(yōu)化,將可能導(dǎo)致運(yùn)行的不流暢。除開(kāi)發(fā)過(guò)程中對(duì)結(jié)構(gòu)上的控制、變量的使用、算法的優(yōu)化等優(yōu)化外,還可以使用混淆器(Obfuscator)進(jìn)行程 序 打包后的優(yōu)化。 (5) 游戲的開(kāi)始、結(jié)束、動(dòng)態(tài)信息顯示畫(huà)面作為構(gòu)成一個(gè)程 序 都是必不可少的重要部分。良好易操作的用戶(hù)界面是吸引用戶(hù)的 硬指標(biāo) [13]。 中北大學(xué) 2021 屆 畢業(yè) 設(shè)計(jì)說(shuō)明書(shū) 第 9 頁(yè) 共 28 頁(yè) MIDP應(yīng)用程 序 MIDlet 是 MIDP 應(yīng)用程 序 運(yùn)行的基本單位 ,一個(gè) MIDlet 至少直接繼承自或者間接繼承自一個(gè)文件名為 的 java 類(lèi)。 MIDP 應(yīng)用程 序 是指遵循由應(yīng)用程 序 主體( jar文件)和應(yīng)用程 序 描述文件( jad文件)組成 。 Jar的文件是 MIDlet 套件的具體表現(xiàn)形式,它包含了 MIDlet 類(lèi),資源文件和清單文件,其中資源文件有可能是文本,圖片或多媒體等 MIDlet 類(lèi)用到的 文件;清單文件包含在安裝 MIDlet 套件時(shí)所 包含的一系列屬性和相關(guān)定義的列表。 JAR 文件實(shí)際上是一個(gè) 具有壓縮和打包性質(zhì)的獨(dú)立文件。 JAD 文件用來(lái)描述MIDlet 套件的基本信息和運(yùn)行信息,它并不是 套件的一部分。主要功能是向應(yīng)運(yùn)程 序 管理器提供對(duì)應(yīng)的 JAR 文件的信息,該信息提示了此套件是否滿(mǎn)足目標(biāo)硬件的運(yùn)行要求 [14]。 在 MIDP規(guī)范中定義了 MIDlet的生命周期 , 以及可以存在的三種狀態(tài) , 包括Paused、 Active以 及 Destroyed, 每一個(gè) MIDlet在任何時(shí)刻只可能處于其中的一個(gè)狀態(tài)。這三種狀態(tài)的轉(zhuǎn)換關(guān)系如圖 : MIDlet有三個(gè)狀態(tài) , 分別是 pause、active和 destroyed。在啟動(dòng)一個(gè) MIDlet的時(shí)候,應(yīng)用管理軟件會(huì)首先創(chuàng)建一個(gè)MIDlet實(shí)例并使得他處于 pause狀態(tài),當(dāng) startApp()方法被調(diào)用的時(shí)候 MIDlet進(jìn)入active狀態(tài)。在 active狀態(tài)調(diào)用 destroyApp(boolean unconditional)或者pauseApp()方法可以使得 MIDlet進(jìn)入 destroyed或者 pause狀態(tài)。值得一提的是destroyApp(boolean unconditional)方法,事實(shí)上,當(dāng) destroyApp()方法被調(diào)用的時(shí)候,應(yīng)用程 序 管理器 AM通知 MIDlet進(jìn)入 destroyed狀態(tài)。在 destroyed狀態(tài)的MIDlet必須釋放了所有的資源,并且保存了數(shù)據(jù)。如果 unconditional為 false的時(shí) 銷(xiāo)毀 態(tài) (Destroyed) 暫停 態(tài) (Paused) 激活 態(tài) (Active) StartApp() DestroyApp() JAM 初試化MIDlet DestroyApp() 調(diào)用PauseApp()方法 圖 MIDlet狀態(tài)遷移觸發(fā)的方法調(diào)用 中北大學(xué) 2021 屆 畢業(yè) 設(shè)計(jì)說(shuō)明書(shū) 第 10 頁(yè) 共 28 頁(yè) 候 , MIDlet可以在接到通知后拋出 MIDletStateChangeException而保持在當(dāng)前狀態(tài) , 如果設(shè)置為 true的話(huà) , 則必須立即進(jìn)入 destroyed狀態(tài) [15]。 Canvas 類(lèi) 為了能有程 序 開(kāi)發(fā)人員控制接口的外觀和行為,需要使用大量的初級(jí)用戶(hù)接口類(lèi),尤其在游戲程 序 中,幾乎完全依賴(lài)的就是 Canvas 抽象類(lèi)進(jìn)行繪圖。從程 序 開(kāi)發(fā)的觀點(diǎn)看, Canvas 類(lèi)可與高級(jí) Screen 類(lèi)交互,程 序 可在需要時(shí)在 Canvas 中摻入高級(jí)類(lèi)的組件。 Canvas 提供了鍵盤(pán)事件、指點(diǎn)桿事件(如果設(shè)備支持),并定義了允許將鍵盤(pán)按鍵映射為游戲控制鍵的函數(shù)。鍵盤(pán)事件由鍵代碼指定,但這樣控制游戲會(huì)導(dǎo)致缺乏通用性,并不是每個(gè)設(shè)備的鍵盤(pán)布局都適合游戲的操作。應(yīng)當(dāng)將鍵代碼轉(zhuǎn)換為游戲鍵的代碼,以便硬件開(kāi)發(fā)商能定義他們自己的游戲鍵布局 。 Graphics 類(lèi) Graphics 類(lèi)提供了簡(jiǎn)單的 2D 繪圖功能。它具有 24位深度色彩的繪制能力,以三原色分別各占一個(gè)字節(jié)表示其顏色。程 序 只能在 paint()函數(shù)中使用 Graphics繪制, GameCanvas 可調(diào)用 getGraphics()函數(shù)直接繪制在緩沖區(qū)上,可以在任何時(shí)間請(qǐng)求傳輸?shù)角芭_(tái)。其對(duì)象會(huì)被傳給 Canvas 的 paint()函數(shù),以便最終顯示。 各功能模塊的作用 本游戲共涉及 四 個(gè)模塊,分別為:游戲 流程控制 和監(jiān)聽(tīng) 模塊 ,游戲 場(chǎng)景繪制模塊,游戲?qū)ο?,下面分別進(jìn)行介紹: 游戲 流程控制和監(jiān)聽(tīng)模塊 負(fù)責(zé)整 個(gè)游戲的基本流程控制,接收用戶(hù)輸入,并做出響應(yīng),通知場(chǎng)景繪制模塊完成游戲場(chǎng)景 以及游戲狀態(tài) 的更新。 游戲 場(chǎng)景繪制 模塊 專(zhuān)門(mén)完成游戲場(chǎng)景的繪制,主要是 方塊 的分布,另外也繪制一些和游戲相關(guān)的信息,如當(dāng)前的級(jí)別和得分等 。 游戲?qū)ο? 只要是各種 方塊的數(shù)據(jù)表示和在場(chǎng)景中所處的位置信息,以及提供外部操縱的接口,如 下,左右 ,旋轉(zhuǎn) 等。 游戲場(chǎng)景狀態(tài) 負(fù)責(zé)存儲(chǔ)當(dāng)前游戲 場(chǎng)景中 方塊 的分布狀況,以及存儲(chǔ)一些同游戲相關(guān)的信息,如當(dāng)前級(jí)別和得分 。 中北大學(xué) 2021 屆 畢業(yè) 設(shè)計(jì)說(shuō)明書(shū) 第 11 頁(yè) 共 28 頁(yè) 4 系統(tǒng) 設(shè)計(jì) 系統(tǒng)主要模塊流程圖 游戲模塊流程圖 圖 游戲模塊流程圖 得分記錄模塊流程圖 開(kāi)始 隨機(jī)生成新的方塊 監(jiān)聽(tīng)用戶(hù)操作并驅(qū)動(dòng)當(dāng)前方塊下落 是否可以繼續(xù)下落 是否可以生成新方塊 是 否 是 游戲結(jié)束 否 分?jǐn)?shù)是否大于排行榜中分?jǐn)?shù) 記錄得分 是 結(jié)束 中北大學(xué) 2021 屆 畢業(yè) 設(shè)計(jì)說(shuō)明書(shū) 第 12 頁(yè) 共 28 頁(yè) 圖 得分記錄模塊流程圖 游戲運(yùn)行效果圖 開(kāi)始 游戲結(jié)束 排行榜中是否有記錄小于得分 用得分與排行榜中每條記錄比較 排行榜是否已滿(mǎn) 替換掉排行榜中比當(dāng)前得分小的最高得分 將當(dāng)前得分插入到排行榜中比當(dāng)前得分小的最高得分之前 排行榜是否已滿(mǎn) 將當(dāng)前得分插入到排行榜末尾 返回導(dǎo)航界面 結(jié)束 是 否 否 是 否 是 中北大學(xué) 2021 屆 畢業(yè) 設(shè)計(jì)說(shuō)明書(shū) 第 13 頁(yè) 共 28 頁(yè) 圖 游戲運(yùn)行效果圖 5 游戲具體實(shí)現(xiàn) 游戲入口類(lèi)實(shí)現(xiàn): MainControl 繼承自 MIDlet 父類(lèi)。是游戲的入口類(lèi),控制所有類(lèi)的運(yùn)行和銷(xiāo)毀。 MainControl 類(lèi)的構(gòu)造方法 : public MainControl() { = (this)。 init()。 //初始化入口類(lèi) menu = new MainMenu(this)。//新建主菜單類(lèi) 中北大學(xué) 2021 屆 畢業(yè) 設(shè)計(jì)說(shuō)明書(shū) 第 14 頁(yè) 共 28 頁(yè) (menu)。//設(shè)置主菜單類(lèi)為當(dāng)前的視類(lèi),即顯示主菜單 } 各個(gè)界面切換的方法: public void mangeaction(int event, int source) { switch (event) { case PLAY: // 啟動(dòng)游戲 game play(source)。 break。 case RECORD: // 啟動(dòng)記錄 record record(source)。 break。 case OPTION: // 啟動(dòng)設(shè)置 option(source)。 break。 case 啟動(dòng)幫助 help(source)。 break。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1