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

正文內(nèi)容

手持設(shè)備上網(wǎng)絡(luò)游戲貪食蛇的實現(xiàn)畢業(yè)論文-閱讀頁

2025-07-13 14:52本頁面
  

【正文】 ?在 switch()中盡量使用連續(xù)的小數(shù)值判斷?盡量使用乘法而不使用除法 [15]。它包括了所有的信息。目前流行的如 decode,JAD 等反編譯工具可以以很快的速度生成源文件。由此引入混淆器的概念。 混淆器的作用不僅僅是保護(hù)代碼,它也有精簡編譯后程序大小的作用?;煜螅w積大約能減少 25%,這對當(dāng)前費用較貴的無線網(wǎng)絡(luò)傳輸是有一定意義的。它控制著整個程序的運行,并且可以通過相應(yīng)函數(shù)從程序描述文件中獲取相關(guān)的信息。) 、結(jié)束的函數(shù)。實現(xiàn) Logo 顯示的類為splashScreen,由于需要進(jìn)行倒計時操作,新詞需要加入關(guān)于時間的接口:并且事先規(guī)定默認(rèn)的等待時間為 3 秒 displayTime = 3000。SnakeMIDlet 繼承自 MIDlet,負(fù)責(zé)游戲的主界面顯示,并繼承了接口mandListener,這樣,就可以使用高級界面的 Command 按鈕。即按鈕事件觸發(fā)后需執(zhí)行的函數(shù)。通過繼承 Screen 的子類 List 類,來顯示游戲的主界面列表和難度等級調(diào)整界面列表,繼承 Textbox 類用來顯示游戲界面中的相關(guān)文字,繼承 Form 類用來顯示無線網(wǎng)絡(luò)對戰(zhàn)的選擇界面。主程序框架如圖 所示。Food 類的構(gòu)造函數(shù)是載入屏幕的高度和寬度,以及加載外部的食物圖片。食物出現(xiàn)的位置不應(yīng)該與蛇的位置重合,這樣既不美觀,也不合理,影響游戲的整體性,所以需要對食物的位置進(jìn)行判斷之后再進(jìn)行繪制。然后用這個食物的位置和蛇所在的每個位置進(jìn)行比較,看是否出現(xiàn)重合,如果出現(xiàn)重合,則需要重新對事物的位置進(jìn)行隨機初始化,如此循環(huán)的設(shè)置與判斷比較,直到食物的位置與蛇所在的位置不重合時,將此位置返回。Food 類功能如圖 所示。Game 類要實現(xiàn)地圖的繪制、蛇的移動,蛇的碰撞算法,食物的出現(xiàn)于消失。在 paint()方法內(nèi)將所想要畫的圖形畫在一張預(yù)先準(zhǔn)備好的背景上,等所有繪圖操作都完成后再將背景的數(shù)據(jù)拷貝到實際的屏幕上。這樣的技術(shù)在繪制動畫時特別有用。地圖圖片如圖 所示。蛇的構(gòu)造使用的是二元數(shù)組 snake[i][j],之所以使用二元數(shù)組是因為蛇的每個點需要紀(jì)錄高和寬兩個信息進(jìn)行定位,游戲初始化蛇的長度為 5,初始化的位置在屏幕的中央(s_width/2,s_height/2 )。天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書19開始啟動主程序初始化蛇的位置 , 食物的位置 , 地圖等其它數(shù)據(jù) , 啟動背景音樂繪制屏幕蛇根據(jù)用戶對方向的控制自動移動是否吃到食物增加得分滿足生成新食物條件 ?是生成新食物是否死亡記分統(tǒng)計是是是否為高分存入數(shù)據(jù)庫退出否是結(jié)束圖 單人游戲流程圖天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書20 Game 類的無線網(wǎng)絡(luò)對戰(zhàn)的構(gòu)造函數(shù)由于有單人游戲與無線網(wǎng)絡(luò)對戰(zhàn),所以 Game 類有兩個構(gòu)造函數(shù),通過函數(shù)重載來實現(xiàn),無線網(wǎng)絡(luò)對戰(zhàn)的構(gòu)造函數(shù) Game(OutputStream os1), 參數(shù)為輸出流。之外還需初始化輸出流,用于數(shù)據(jù)傳遞,還需將無線網(wǎng)絡(luò)對戰(zhàn)標(biāo)志位flagsocket 置為 1,說明正在進(jìn)行無線網(wǎng)絡(luò)對戰(zhàn)。程序執(zhí)行中,蛇的每次移動都必須執(zhí)行這兩項碰撞檢測,從而對游戲的當(dāng)前狀態(tài)進(jìn)行判斷。如果不重合則說明沒有吃到食物,返回 false,不進(jìn)行處理。判斷游戲是否結(jié)束的結(jié)束條件主要有兩項(1)蛇頭超出邊界 用蛇頭的位置與屏幕的上下左右四個邊界進(jìn)行比較,判斷蛇頭是否超出邊界,如果超出說明游戲結(jié)束,將游戲的狀態(tài)標(biāo)志 gameState 置為結(jié)束 STATELOST。圖 所示判斷游戲結(jié)束的流程圖天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書21開始蛇頭碰到邊界 ?蛇頭碰到自身 ?G a m e O v e r結(jié)束游戲循環(huán)否否是是圖 判斷游戲結(jié)束創(chuàng)建背景音樂需要用到 MMAPI 的播放器 Player 和控制器 Control,Player 的接口定義在 包內(nèi),用于處理音頻文件。實現(xiàn)播放背景 Mid 音樂的函數(shù)是 playmid(),在創(chuàng)建 player 對象前首先要判斷,是否已經(jīng)創(chuàng)建音樂對象,以免多次創(chuàng)建對象。(in, audio/midi),然后就可以將播放器置為緩沖狀態(tài)realize,Player 加載了足夠的內(nèi)容就會進(jìn)入 prefetch 狀態(tài),由于是背景音樂,所以需要設(shè)定為循環(huán)播放 (1),最后就可以為播放器開啟線程 (),實現(xiàn)游戲背景音樂的播放了。但游戲結(jié)束需要關(guān)閉播放器時,將播放器置為關(guān)閉 (),并釋放播放器資源(player = null)即可。天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書22開始創(chuàng)建 P l a y e r 對象加載外部音樂文件將播放器狀態(tài)置為緩沖將播放器狀態(tài)置為完成設(shè)置背景音樂為循環(huán)播放啟動音樂播放器線程開始播放音樂結(jié)束圖 背景音樂播放流程圖游戲的記分牌的顯示利用 Graphics 的 drawString 在屏幕的左上角實時的游戲的當(dāng)前得分和當(dāng)前難度等級,計分是每吃一個食物進(jìn)行計算,普通食物與獎勵食物加分不同,游戲的難度等級可以在開始菜單中更改,主程序中獲取用戶攝制的難度等級。如圖 所示。如圖 48 所示。輸?shù)娜孙@示You Lose,平局顯示平局。天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書24開始清空屏幕設(shè)置字體類型和字體顏色是否是無線網(wǎng)絡(luò)對戰(zhàn)顯示游戲結(jié)束及自己得分顯示對方得分哪個人分高 ?顯示勝利顯示平局顯示失敗相等自己對方否是結(jié)束退出圖 游戲結(jié)束畫面的流程圖 無線網(wǎng)絡(luò)對戰(zhàn)的實現(xiàn)程序有三個用于無線聯(lián)網(wǎng)對戰(zhàn)的類,Server 類用于服務(wù)器端,Client 類用于客戶極端,Sender 類負(fù)責(zé)在服務(wù)器與客戶機間傳送數(shù)據(jù)。 類 Client 類用來創(chuàng)建客戶機界面,與服務(wù)器建立連接后則可以向服務(wù)器發(fā)送數(shù)據(jù)。程序數(shù)據(jù)以數(shù)據(jù)流的方式進(jìn)行傳送,數(shù)據(jù)流的優(yōu)點是能所有數(shù)據(jù)能準(zhǔn)確、有序地送到接天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書25收方,缺點是速度較慢。因為需要與服務(wù)器端進(jìn)行數(shù)據(jù)傳遞,因此需要打開輸入流 openInputStream()與輸出流openOutputStream()。\n39??蛻魴C工作流程如圖 所示。為了讓客戶端可以知道服務(wù)器的 IP 地址和監(jiān)聽端口,控制與服務(wù)器端建立連接(SocketConnection)(Server 類主要實現(xiàn)的功能與 Client 類相似,不停地對數(shù)據(jù)進(jìn)行接收并解析之。開始選擇服務(wù)器模式定義服務(wù)器端的監(jiān)聽端口 , 控制與客戶機端建立連接打開輸入輸出流以傳遞值開始游戲有數(shù)據(jù)傳入 ?對數(shù)據(jù)進(jìn)行接收并解析傳遞過來的值付給對方的當(dāng)前得分游戲結(jié)束判斷勝負(fù)結(jié)束是資源回收圖 服務(wù)器工作流程圖 類天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書27sender 類是由主程序類調(diào)用,負(fù)責(zé)將主程序中需要向?qū)Ψ桨l(fā)送的數(shù)據(jù),以 message 的形式進(jìn)行發(fā)送,以字節(jié)流進(jìn)行傳送。Sender 類工作流程圖如圖 所示。Record Store 等同于數(shù)據(jù)庫系統(tǒng)中的表(table) 。實現(xiàn)的函數(shù)是saveGame(),游戲結(jié)束需要對游戲的分?jǐn)?shù)進(jìn)行記錄時,需要先創(chuàng)建記錄集,RecordStore rs = (SnakeGame, true)。然后通過輸出流將需要進(jìn)行存儲的數(shù)據(jù),游戲的高分紀(jì)錄 Score 存入 byte 數(shù)組,并以字節(jié)流的方式存入記錄集中,最后關(guān)閉流對象,關(guān)閉記錄天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書28集。然后依次關(guān)閉流對象,關(guān)閉記錄集。圖 打開項目在項目工程上點擊右鍵,選擇屬性,在點擊創(chuàng)建 JAR 標(biāo)簽,填寫文件名。圖 創(chuàng)建 JAR天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書30打開混淆器選項設(shè)置混淆等級。 游戲測試運行程序,首先顯示游戲的 Logo 界面,Logo 的顯示時間為 3 秒鐘,3 秒鐘之后游戲便會進(jìn)入主菜單,或者在 Logo 顯示時按任意鍵便可進(jìn)入游戲的主菜單,游戲 Logo 界面入圖。天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書31圖 主界面菜單選擇新游戲,進(jìn)入單人游戲。圖 單人游戲吃到食物,左上角的計分板會顯示當(dāng)前得分。通過選擇主菜單的[調(diào)整難度等級],可以調(diào)整游戲的速度。如圖 所示。圖 最高紀(jì)錄選擇無線網(wǎng)絡(luò)對戰(zhàn),在單選框中,一個人選擇服務(wù)器,另一個人選擇客戶機。天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書34圖 選擇客戶機與服務(wù)器選擇之后會等待連接,如圖 所示。游戲的計分板會實時的天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書35顯示對方的當(dāng)前得分。如圖 所示為勝利時的顯示界面。提供了游戲得分的計算,以及游戲背景音樂的加入,使游戲具有一定的可玩性和復(fù)雜性。在學(xué)習(xí) J2ME 開發(fā)游戲的過程中,遇到的困難遠(yuǎn)遠(yuǎn)超出了想象。J2ME 為一種剛出現(xiàn)僅幾年的新技術(shù),國內(nèi)的參考資料非常少,僅有的幾本也停留在簡單的介紹階段。通過對本課題的研究與實現(xiàn),增強了我的實踐能力。通過對手機游戲的設(shè)計與實現(xiàn),使我對軟件工程,開發(fā)語言及開發(fā)工具等都有了比較全面的實踐和掌握。Reilly. March 2022[15] MARTIN J. WELLS.J2ME Game Programming.Publisher: Premier Press.2022天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書39附錄 代碼實現(xiàn)用戶進(jìn)入游戲主菜單的實現(xiàn)import .*。import 。//要使用到的各種輸入輸出流 import 。/** * author zhenming */public class SnakeMIDlet extends MIDlet implements CommandListener{static Display display = null。 private Server server。 private static final String SERVER = Server。 private static final String[] names = {SERVER, CLIENT}。 private ChoiceGroup cg。 private final static Command backCommand = new Command(返回, , 1)。 private List mainList。 private TextBox tb。 public int len = 0。public void begin() { f = new Form(貪食蛇)。 (cg)。 (exitCommand)。 (f)。 //添加二級界面的按鈕 tb = new TextBox(List,List,50,0)。 //添加按鈕監(jiān)聽 (this)。 //主界面列表 mainList = new List(畢業(yè)設(shè)計貪食蛇, , stringArraymain, null)。 (okCommand)。 if (firstTime) { splashScreen wele = new splashScreen(display, mainList)。 (wele)。 }}public void pauseApp() {}public void destroyApp(boolean unconditional) 天津理工大學(xué) 2022 屆本科畢業(yè)設(shè)計說明書41{ } public void mandAction (Command cmd,Displayable d) { if(cmd == exitCommand) { destroyApp(true)。 } if ((mainList)) { // 如果是在 mainList 屏幕內(nèi),判斷用戶的選擇 if (cmd == okCommand) { if ((mainList)) { switch (((List)d).getSelectedIndex()) { case 0: newgam
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1