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

正文內(nèi)容

計算機游戲手持設(shè)備上網(wǎng)絡(luò)游戲“貪食蛇”的實現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-24 22:02 本頁面
 

【文章內(nèi)容簡介】 動應(yīng)用程序。此 IDE 可以在多種平臺上運行,包括 Windows、Linux 、Mac OS X 以及 Solaris;它易于安裝且非常方便使用。NetBeans 最新版 NetBeans IDE 版本提供了幾種新功能和一些功能的增強。提供了強大的 JavaScript 編輯功能,支持使用 Sping 的 WEB 框架,并加強了與 MySQL 的整合,便NetBeans 比較方便的使用 MySQL 數(shù)據(jù)庫,NetBeans 增強了性能,啟動速度提升 40%。在建立一個大工程時,有較低的內(nèi)存消耗和更快的響應(yīng)速度。NetBeans 以它的高集成度,人性化的界面,以及逐步增強的功能,已經(jīng)得到越來越多的開發(fā)者的支持。 Wireless Toolkit WTK(Wireless Toolkit)是 Sun 公司針對 J2ME 推出的用于手機和 Palm 等移動設(shè)備的開發(fā)包,是除手機廠商的專用開發(fā)包外唯一的手機模擬器開發(fā)包。它通用性高,開發(fā)出的應(yīng)用程序可保證能運行在大部分設(shè)備上,而不像專用廠商具有一定的不兼容性。雖然它沒有強大的功能和完善的調(diào)試手段,但它提供運行模擬器的最基本組件,是其他 IDE 需集成采用的必備元素。界面如圖 所示圖 WTK 界面Sun Java(TM) Wireless Toolkit 的目錄結(jié)構(gòu)見表 。表 Sun Java(TM) Wireless Toolkit 的安裝目錄目 錄 包 含 的 內(nèi) 容{Install}/apps使用 Sun Java(TM) Wireless Toolkit 創(chuàng)建的工程源代碼、資源和配置文件將存放在這里。此外,Sun Java(TM) Wireless Toolkit 所自帶的例子程序也存放在這里{Install}/bin存放著 CLDC 和 MIDP 以及 Sun Java(TM) Wireless Toolkit 的執(zhí)行程序。這些文件能完成編譯、校驗和運行的任務(wù){(diào)Install}/lib/ CLDC 和 MIDP 的類庫包{Install}/docs包含 CLDC、MIDP 和 Sun Java(TM) Wireless Toolkit 的幫助文檔 MIDP應(yīng)用程序 MIDP 應(yīng)用程序是指遵循由應(yīng)用程序主體(Jar 文件)和應(yīng)用程序描述文件(Jad 文件)組成。按部署方式可分 OTA 和非 OTA 兩種。 MIDlet:是 Jave 一個類,擴展了 抽象類。MIDlet 生命周期分 3 種狀態(tài):運行狀態(tài),暫停狀態(tài),銷毀狀態(tài)等。 將 OTA(Over The Air)預(yù)配置規(guī)范加入進來,確保了應(yīng)用程序分發(fā)機制可以適用于所有設(shè)備,同時還定義了移動信息設(shè)備上的應(yīng)用程序管理需求。圖 顯示的是 MIDP 圖形用戶界面接口結(jié)構(gòu)D i s p l a yD i s p l a y a b l eS c r e e nT i c k e rL i s tT e x t B o x F o r mA l e r tI t e mG a u g eT e x t F i e l d C u s t o m I t e mS p a c e rD a t e F i e l dC h o i c e G r o u p S t r i n g I t e mI m a g e I t e m圖 MIDP 圖形用戶界面接口結(jié)構(gòu)隨著今后 MIDP 的推出,手持設(shè)備的性能還將大幅提高,手機游戲開發(fā)將更加便捷,游戲制作更加精良。第三章 手機游戲“貪食蛇”的功能分析和設(shè)計 手機游戲“貪食蛇”的總體設(shè)計總體設(shè)計的基本目的是解決系統(tǒng)如何實現(xiàn)這個問題,因此系統(tǒng)設(shè)計又稱為概要設(shè)計。總體設(shè)計是系統(tǒng)開發(fā)過程中關(guān)鍵的一步,下面將對系統(tǒng)進行總體設(shè)計。本系統(tǒng)在主菜單界面上采用 Screen 類提供的高級界面。游戲界面采用 Canvas 類提供的低級界面開發(fā),無線網(wǎng)絡(luò)對戰(zhàn)使用 Socket 編程的方法,實現(xiàn)客戶機端與服務(wù)器端之間進行通信。Screen 是高級圖形用戶界面,從 Screen 派生的如 TextBox,List,F(xiàn)orm 不需要我們自己繪制,只需制定合適的參數(shù),系統(tǒng)就會將標(biāo)題、文本框、滾動條等自動繪制出來。在繪制開始菜單等界面上滿足了實際的需求,同時實現(xiàn)了很大的便捷。Canvas 則正好相反,它是一個低級圖形用戶界面,在手機界面大小的范圍內(nèi),我們可以控制任意像素的繪制,顯示效果完全取決于我們設(shè)計的代碼,這在游戲的開發(fā)中是必不可少的。Socket 原先是 Unix 系統(tǒng)中的概念,后來在網(wǎng)絡(luò)編成中廣泛應(yīng)用。在用 J2ME 進行手機游戲開發(fā)中,將 Socket 類和 ServerSocket 類分別用于 Client 端和 Server 端,在任意兩臺機器間建立連接。 程序流程MIDP 規(guī)范中定義了 MIDlet 的生命周期,以及可以存在的三種狀態(tài),包括Paused、Active 以及 Destroyed,每一個 MIDlet 在任何時刻只可能處于其中的一個狀態(tài)。這三種狀態(tài)的轉(zhuǎn)換關(guān)系如圖 所示:MIDlet 有三個狀態(tài),分別是 pause、active 和destroyed。在啟動一個 MIDlet 的時候,應(yīng)用管理軟件會首先創(chuàng)建一個 MIDlet 實例并使得他處于 pause 狀態(tài),當(dāng) startApp()方法被調(diào)用的時候 MIDlet 進入 active 狀態(tài),也就是所說的運行狀態(tài)。在 active 狀態(tài)調(diào)用 destroyApp(boolean unconditional)或者 pauseApp()方法可以使得 MIDlet 進入 destroyed 或者 pause 狀態(tài) [7]。D e s t r o y A p p ( )消減狀態(tài) ( D e s t r o y e d ) 停止?fàn)顟B(tài) ( P a u s e d ) 運行狀態(tài) ( A c t i v e ) S t a r t A p p ( ) 呼叫 M I D l e t 的構(gòu)造函數(shù) D e s t r o y A p p ( ) P a u s e A p p ( ) 圖 Midlet 流程值得一提的是 destroyApp(boolean unconditional)方法,事實上,當(dāng) destroyApp()方法被調(diào)用的時候,AMS 通知 MIDlet 進入 destroyed 狀態(tài)。在 destroyed 狀態(tài)的 MIDlet 必須釋放了所有的資源,并且保存了數(shù)據(jù)。如果 unconditional 為 false 的時候,MIDlet 可以在接到通知后拋出 MIDletStateChangeException 而保持在當(dāng)前狀態(tài),如果設(shè)置為 true 的話,則必須立即進入 destroyed 狀態(tài)。本程序運行程序后允許用戶選擇執(zhí)行選項菜單,在開始游戲后將先從外部文件載入地圖文件,對背景的所有物體進行繪圖。在程序運行的主線程中,畫面刷新將以一定的頻率對屏幕重繪,實時反映整個游戲的進行狀態(tài)。在 Player 線程中開啟游戲背景音樂。游戲開始后先繪制地圖,并將各個對象初始化。游戲中的普通食物設(shè)置為初始顯示isShow = true,而獎勵食物設(shè)置為初始不顯示 isShow = false,當(dāng)用戶達到獎勵食物的出現(xiàn)條件時再設(shè)置 isShow = true,予以顯示。在屏幕重繪的主程序中,將在每次的循環(huán)中判斷若干事件,以便程序進入相關(guān)的分支執(zhí)行相關(guān)的反應(yīng)代碼。如:設(shè)是否與屏幕邊緣、食物以及自身相撞、屏幕上相關(guān)信息的繪制等。如果選擇無線雙人對戰(zhàn),還需要對對方的得分進行實時的傳送與顯示,以及對最終的勝負進行判斷。Client 類與 Server 類分別對應(yīng)客戶機與服務(wù)器,Sender 類負責(zé)對客戶機與服務(wù)期間傳送數(shù)據(jù)。程序為需要完成獨立功能的模塊還設(shè)置了其他單獨的類。splashScreen 類負責(zé)顯示初始載入畫面,F(xiàn)ood 類實現(xiàn)食物的顯示。 本程序需要解決的主要技術(shù)問題1. 游戲程序是一項精度要求很高的程序系統(tǒng),繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應(yīng),若有絲毫的差別都將很容易導(dǎo)致程序在運行不久后可能出現(xiàn)嚴(yán)重錯誤,甚至死循環(huán)。因此,其邏輯設(shè)計應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),需將所有可能發(fā)生的事件及意外情況考慮在設(shè)計中。2. 游戲中為了美觀,提高游戲性,可能需要采用外部文件引入的圖片貼圖,以及 MID 背景音樂。背景音樂可以根據(jù)用戶的需要隨時進行開啟和關(guān)閉。游戲的開始信息畫面也是吸引用戶的重要部分。3. 為了滿足游戲的需要,游戲需要加入難度調(diào)整的功能,根據(jù)選擇難度的不同,蛇的移動速度需要進行相應(yīng)的調(diào)整,以增強游戲的挑戰(zhàn)性。4. 游戲需要進行實時的得分計算,蛇每吃到一個食物進行加分,每得到一定的分?jǐn)?shù),還會出現(xiàn)獎勵食物,吃到的加分會更多。游戲的結(jié)尾會對用戶的最終得分加以顯示。5. 蛇每吃到一個食物,就會在地圖上在生成一個新食物,新食物的生成不應(yīng)與蛇的位置相重疊,缺乏真實感。所以每一次生成新食物都需要進行相關(guān)的碰撞檢測。6. 以無線網(wǎng)絡(luò)進行雙人對戰(zhàn)時,需要在屏幕上顯示自己和對方的當(dāng)前得分,在游戲結(jié)束時,需要根據(jù)雙方的得分進行判斷勝負,并在屏幕上顯示雙方的勝負結(jié)果。7. 游戲需要建立高分榜,將用戶打出的最高分加以保存,可以隨時察看游戲的最高分,以增強游戲的挑戰(zhàn)性。記錄分?jǐn)?shù)的存儲方式也需要有較好的解決方案。手機中由于處理器和內(nèi)存空間、存儲空間都十分有限,其數(shù)據(jù)庫系統(tǒng)與普通 PC 大相徑庭。其數(shù)據(jù)庫結(jié)構(gòu)較為簡單,被稱之為 RMS 系統(tǒng)。8. Java 是基于虛擬機的半解釋型編譯系統(tǒng),其執(zhí)行效率較 C++等完全編譯后的程序會低很多,程序如果不進行精簡和優(yōu)化,將可能導(dǎo)致運行的不流暢。除開發(fā)過程中對結(jié)構(gòu)上的控制、變量的使用、算法的優(yōu)化等優(yōu)化外,還可以使用混淆器(Obfuscator)進行程序打包后的優(yōu)化。以上相關(guān)技術(shù)細節(jié)和整體流程將分別在以下小節(jié)闡述。 程序中的幾項技術(shù) Canvas類Canvas 是 MIDP 提供的低級用戶界面類。和高級用戶界面相比,Canvas 擁有更大的靈活性。由于 Canvas 不提供任何現(xiàn)成的可視化組件,所有在 Canvas 顯示的圖形和文本都必須通過 Graphics 繪制出來。因此,開發(fā)人員可以完全獲得界面控制能力,能精確控制每一個像素的位置,在游戲開發(fā)中,這是必不可少的。Canvas 提供了鍵盤事件,并定義了允許將鍵盤按鍵映射為游戲控制鍵的函數(shù)。鍵盤事件由鍵代碼指定,但這樣控制游戲會導(dǎo)致缺乏通用性,并不是每個設(shè)備的鍵盤布局都適合游戲的操作。應(yīng)當(dāng)將鍵代碼轉(zhuǎn)換為游戲鍵的代碼,以便硬件開發(fā)商能定義他們自己的游戲鍵布局。 Graphics 類Graphics 是 包中用于繪制簡單 2D 圖形的類 [8]。它具有 24 位深度色彩的繪制能力,以三原色分別各占一個字節(jié)表示其顏色。程序只能在 paint()函數(shù)中使用Graphics 繪制。文本的繪制是基于定位點操作的。定位點的最大作用就是最小化計算文本繪制位置所需的工作量。定位點是由三個水平常量(LEFT,HCENTER,RIGHT)和三個垂直常量(BOTTOM,BASELINE,TOP)組合而成的,組合的方式按照“或”操作。數(shù)字玲也可以做定位點的值,它代表的組合方式是 TOP|LEFT。在 Graphics 中還定義了一個垂直常量VCENTER,但是它不能用于繪制文本。一般認為文本的垂直居中沒有意義,而且也很難實現(xiàn)[9]。但是 VCENTER 可以用于繪制圖片的 drawImage()方法 [10]。繪制圖片的方法與文本非常類似,不同的是由于圖片沒有基線(baseline )的概念,因此在繪制圖片時不能使用BASELINE 常量。 Socket 開發(fā) MIDP 無線連網(wǎng)游戲(JSR 118)增加了對 TCP/IP 和 UDP 協(xié)議的支持??梢允褂?Socket 開發(fā)聯(lián)網(wǎng)游戲, 規(guī)范并沒有規(guī)定設(shè)備必須支持 Socket,因此在使用之前應(yīng)該參考設(shè)備規(guī)范看其是否支持 Socket 通信 [11]。 增加了下面兩個接口來支持基于 IP 的 Socket 網(wǎng)絡(luò)編程:Socket 類用在用戶端,用戶構(gòu)造一個 Socket 類可以建立與服務(wù)器的連接。Socket 類的構(gòu)造方法有四種:? Socket(String,int)構(gòu)造一個連接指定主機、指定端口的流 Socket。? Socket(String,int,boolean)構(gòu)造一個連接指定主機、指定端口的 Socket 類,boolean 類型的參數(shù)用來設(shè)置是流 Socket 還是數(shù)據(jù)報 Socket。? Socket(IAddress,int,boolean)構(gòu)造一個連接指定 Inter 地址、指定端口的流Socket。? Socket(IAddress,int,boolean)構(gòu)造一個連接指定 Inter 地址、指定端口的 Socket 類,boolean 類型的參數(shù)用來設(shè)置是流 Socket 還是數(shù)據(jù)報 Socket。構(gòu)造完 Socket 類后,就可以通過 Socket 類建立輸入、輸出流,通過流來傳送數(shù)據(jù)。ServerSocket 類用在服務(wù)器端,接收用戶端傳送的數(shù)據(jù)。ServerSocket 類的構(gòu)造方法有兩種:? ServerSocket(int)在指定端口上構(gòu)造一個 ServerSocket 類。? ServerSocket(int,int)在指定端口上構(gòu)造一個 ServerSocket 類,并進入監(jiān)聽狀態(tài),第二個 int 類型的參數(shù)是監(jiān)聽時間長度 [12] 。 RMS 數(shù)據(jù)庫系統(tǒng)MIDP 為 MIDlets 提供了一種永久存儲和后來讀出數(shù)
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1