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

正文內(nèi)容

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

2025-01-08 19:30 本頁面
 

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