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

正文內(nèi)容

計(jì)算機(jī)游戲手持設(shè)備上網(wǎng)絡(luò)游戲“貪食蛇”的實(shí)現(xiàn)畢業(yè)論文(參考版)

2025-06-30 22:02本頁面
  

【正文】 String[] stringArraymain = { 新游戲, 。 (backCommand)。 }public void startApp() { display = (this)。 (this)。 (new Command(開始, , 1))。 cg = new ChoiceGroup(請選擇類型, names, null)。 private boolean firstTime = true。 public int level =0。 private List levelset。 private final static Command okCommand = new Command(選擇, , 1)。 /*初始化選擇畫面*/ private Command exitCommand = new Command(退出,1)。 private Form f。 private static final String CLIENT = Client。private Client client。static Game s_game = null。 import 。import 。import .*。參考文獻(xiàn)[1] 上海證券報(bào) . 年 01 月 26 日[2] 陳立偉,張克非,黎秀紅.精通 Java 手機(jī)游戲與應(yīng)用程序設(shè)計(jì).中國青年出版社,2022年 5 月[3] 洪維恩. Java 2 面向?qū)ο蟪绦蛟O(shè)計(jì).中國鐵道出版社,2022 年 8 月[4] 盧軍編. J2ME 應(yīng)用程序開發(fā).中國鐵道出版,2022 年 9 月[5] [美]James Keogh 著,潘穎,王磊譯.J2ME 開發(fā)大全.清華大學(xué)出版社,2022 年[6] 張海藩.軟件工程導(dǎo)論(第四版) .清華大學(xué)出版社,2022 年 12 月[7] 王森.Java 手機(jī)程序設(shè)計(jì)入門.電子工業(yè)出版社,2022 [8] 李鵬,陳煒,任俊偉.J2ME 游戲編程.清華大學(xué)出版社.2022 年 11 月[9] 詹建飛. J2ME 開發(fā)精解.電子工業(yè)出版社,2022 年 1 月[10] [美]Donald Hearn, Baker.蔡士杰,宋繼強(qiáng),蔡敏譯.計(jì)算機(jī)圖形學(xué)(第三版).電子工業(yè)出版社,2022 年 6 月[11] 陳明.網(wǎng)絡(luò)協(xié)議教程.清華大學(xué)出版社,2022 年 6 月[12] 焦祝軍,張威. J2ME 無線通信技術(shù)應(yīng)用開發(fā).北京希望電子出版社,2022 年 8 月[13] 邵明武. J2ME 平臺手機(jī)游戲的設(shè)計(jì)與實(shí)現(xiàn).西南交通大學(xué),2022[14] Kim Topley.J2ME in a Nutshell.Publisher: O39。使我對 J2ME 軟件開發(fā)方法有了更進(jìn)一步的理解,獨(dú)立的完成了系統(tǒng)的整個(gè)開發(fā)過程。J2ME 應(yīng)用程序開發(fā)這本書給了我很大的幫助。很多相關(guān)的技術(shù),如需要使用到的線程、背景音樂的加入、聯(lián)網(wǎng)對戰(zhàn)的設(shè)計(jì),MIDP 高級、低級圖形界面的使用、貼圖等,每一項(xiàng)都需要花一定的時(shí)間去掌握和熟悉。經(jīng)過了細(xì)心的調(diào)試和排錯(cuò)解決了絕大部分的問題。圖 勝利時(shí)的顯示界面 幫助選擇幫助,即可進(jìn)入如圖 所示的幫助頁面,成功進(jìn)入,顯示正常:圖 幫助 結(jié)束語本程序設(shè)計(jì)實(shí)現(xiàn)了手機(jī)上以 J2ME 為平臺的無線網(wǎng)絡(luò)游戲貪食蛇的開發(fā),同時(shí)實(shí)現(xiàn)了單人游戲與無線網(wǎng)絡(luò)對戰(zhàn)的功能,提供了難度調(diào)整與游戲紀(jì)錄存儲的功能。圖 無線網(wǎng)絡(luò)對戰(zhàn)當(dāng)游戲結(jié)束時(shí),會(huì)顯示兩人的最終得分,并根據(jù)得分判斷兩人的勝負(fù)。圖 等待連接當(dāng)連接成功后,網(wǎng)絡(luò)指示燈會(huì)亮起,進(jìn)入游戲,如圖 所示。如圖 所示。圖 游戲結(jié)束界面如果游戲打出最高分,會(huì)存儲到手機(jī)數(shù)據(jù)庫中,可在主界面中選擇[最高紀(jì)錄]查看,如圖 所示。如圖 所示圖 難度調(diào)整當(dāng)撞倒屏幕的邊緣或撞到自己,就會(huì)游戲結(jié)束。根據(jù)選擇不同的難度,也會(huì)顯示出當(dāng)前的難度等級。如圖 所示。圖 Logo之后進(jìn)入游戲的主菜單界面,如圖 所示。如圖 所示圖 混淆器級別調(diào)整之后選擇菜單[生成]—〉[生成主項(xiàng)目]就會(huì)生成 JAD 與 JAR 文件。如圖 所示。第五章 系統(tǒng)測試與安裝 打包測試的過程首先,系統(tǒng)應(yīng)該裝有 jdk 和 Neatbeans,打開 Neatbeans,選擇打開項(xiàng)目,找到自己的工程文件夾,點(diǎn)擊打開即可,如圖 所示。當(dāng)需要查看游戲的高分榜時(shí),在游戲的主菜單中進(jìn)入游戲的最高紀(jì)律查看,實(shí)現(xiàn)的函數(shù)是 loadGame(),首先打開名為 SnakeGame 的記錄集,創(chuàng)建輸入流對象,并對數(shù)據(jù)進(jìn)行恢復(fù),將游戲的高分附值給臨時(shí)變量,并在屏幕上予以顯示。命名為 SnakeGame,在每個(gè) Midlet包中 Record Store 的名字必須是唯一的。程序中需要用到的接口是 。開始請求進(jìn)行數(shù)據(jù)發(fā)送數(shù)據(jù)是否為空等待數(shù)據(jù)傳入數(shù)據(jù)是否為空發(fā)送數(shù)據(jù)清空數(shù)據(jù)否退出結(jié)束是圖 Sender 類工作流程圖 記錄系統(tǒng)——高分榜記分系統(tǒng)的功能采用的是手機(jī)專用的一種簡化的數(shù)據(jù)庫 RMS。在主程序中,每次自己的當(dāng)前得分改變,都需要使用 sender 類向?qū)Ψ絺魉蛿?shù)據(jù),將自己的得分 Score 傳送給對方。服務(wù)器工作模式流程圖如圖 所示。開始選擇客戶機(jī)模式控制與服務(wù)器端建立連接打開輸入輸出流以傳遞值開始游戲有數(shù)據(jù)傳入 ?對數(shù)據(jù)進(jìn)行接收并解析傳遞過來的值付給對方的當(dāng)前得分游戲結(jié)束判斷勝負(fù)結(jié)束是資源回收圖 客戶機(jī)工作流程圖 類如果選擇了服務(wù)器模式將建立 ServerSocketConnection,手機(jī)上會(huì)自動(dòng)啟動(dòng) socket 監(jiān)聽程序,等待客戶端連接。判斷是否讀到數(shù)據(jù)末端,然后將數(shù)據(jù)進(jìn)行解析還原,并將此數(shù)值付給對方的當(dāng)前得分值 score1,如此不停的等待數(shù)據(jù)傳入,游戲結(jié)束時(shí)使用 close()對各項(xiàng)資源進(jìn)行回收。之后便可以啟動(dòng)主程序,Client 類繼續(xù)負(fù)責(zé)不停地對數(shù)據(jù)進(jìn)行接收并解析之,直到游戲結(jié)束,如果收到數(shù)據(jù),將接收到的字節(jié)流轉(zhuǎn)化為數(shù)據(jù)流 DataInputStream(is),并對數(shù)據(jù)一次讀入,通過 ()) != 39。數(shù)據(jù)流需要的接口是 和 。以客戶端的方式啟動(dòng)后,客戶端首先連接第三方 Web 服務(wù)器讀取 socket 服務(wù)器的 IP 地址和端口,(ServerSocketConnection) (后便可以向 socket 服務(wù)器發(fā)送數(shù)據(jù)。在游戲的主菜單上選擇無線網(wǎng)絡(luò)對戰(zhàn),用戶需要在 Form 上進(jìn)行選擇,一個(gè)人選擇客戶機(jī),另一個(gè)人選擇服務(wù)器,根據(jù)用戶的不同選擇,分別進(jìn)入 Client 類和 Server 類。如圖 所示。游戲結(jié)束同樣需要判斷當(dāng)前的游戲狀態(tài),是單人游戲還是無線網(wǎng)絡(luò)對戰(zhàn),如果標(biāo)識位flagsocket 等于 1,說明正在進(jìn)行的是無線網(wǎng)絡(luò)對戰(zhàn),則還需將自己的游戲得分 Score 對對方的游戲得分 Score1 進(jìn)行比較,贏得人顯示You Win,如圖 49。開始初始化字體類型 , 字體顏色在適當(dāng)位置顯示目前得分和等級是否是無線網(wǎng)絡(luò)對戰(zhàn)顯示對方當(dāng)前得分繼續(xù)執(zhí)行替他函數(shù)結(jié)束是否圖 記分牌的流程圖當(dāng)游戲結(jié)束時(shí),先使用 fillRect 對整個(gè)屏幕進(jìn)行覆蓋,然后在屏幕的中間顯示游戲的最終得分,使用 HCENTER 進(jìn)行居中顯示,以達(dá)到比較好地顯示效果。顯示計(jì)分牌先要使用setColor 設(shè)置字體的顏色,setFont 獲取默認(rèn)字體,還需判斷當(dāng)前的游戲狀態(tài),是單人游戲還是無線網(wǎng)絡(luò)對戰(zhàn),如果標(biāo)識位 flagsocket 等于 1,說明正在進(jìn)行的是無線網(wǎng)絡(luò)對戰(zhàn),則還需顯示對方的當(dāng)前得分。如圖 所示音樂播放流程。游戲中可以實(shí)時(shí)的進(jìn)行靜音操作,使用 Control 的接口的 VolumeControl 進(jìn)行音量控制,()用來判斷但錢是否為靜音狀態(tài),使用 VolumeControl 的 setMute 函數(shù)更改音量的狀態(tài)即可。然后使用 Manager 類提供的方法創(chuàng)建播放器。Control 的接口定義在 包內(nèi),用于改變播放器的行為,比如音量大小的調(diào)整和靜音等。(2)蛇頭碰到自身 使用循環(huán)讓蛇頭的位置與蛇身數(shù)組的每個(gè)節(jié)點(diǎn)進(jìn)行比較,如果有某一個(gè)節(jié)點(diǎn)的值與蛇頭位置的值相等,說明蛇頭碰到自身,游戲結(jié)束,將游戲的狀態(tài)標(biāo)志 gameState 置為結(jié)束STATELOST。 boolean isIntersect( int x, int y, int w, int h)參數(shù)信息分別是蛇頭的位置的(x,y)值與食物位置的(x,y)值,通過比較判斷蛇頭的位置是否與食物相重合,如果重合則說明蛇吃到食物,返回 true,利用其他函數(shù)繼續(xù)進(jìn)行添加食物等處理。游戲的碰撞檢測主要有兩項(xiàng)內(nèi)容,一個(gè)是吃食物的碰撞,另一個(gè)是導(dǎo)致游戲結(jié)束的碰撞。無線網(wǎng)絡(luò)對戰(zhàn)的構(gòu)造函數(shù)除了初始化游戲的背景,蛇的位置,食物的位置,以及屏幕的寬度高度等信息。單人主邏輯如圖 所示。圖 地圖圖片 Game 類的單人游戲構(gòu)造函數(shù)單人游戲的構(gòu)造函數(shù) Game(),初始化游戲的背景,蛇的位置,食物的位置,以及屏幕的寬度高度等信息。繪制動(dòng)畫時(shí)經(jīng)常需要不斷地更新畫面,而更新畫面的操作就是先將屏幕以 fillRect()的方式清除,再將下一張圖片畫在屏幕上,然而反復(fù)的清除及重繪會(huì)造成屏幕的閃爍現(xiàn)象(flicker) ,因此使用雙重緩沖的好處就是在背景進(jìn)行這個(gè)清除及重繪的操作,再將完成的繪圖拷貝到屏幕上,由于用戶看不到清除的操作,因此就不會(huì)出現(xiàn)閃爍的現(xiàn)象了。Image 類提供了一個(gè)建立背景的靜態(tài)方法createImage(int width, int height),再利用 getGraphics()方法取得屬于這個(gè)背景的Graphics 對象,所進(jìn)行的繪圖操作都會(huì)作用在背景上,等到全部的繪圖操作完成后,再調(diào)用drawImage()方法將背景的數(shù)據(jù)復(fù)制到實(shí)際顯示的屏幕上。計(jì)算游戲的得分,判斷游戲是否結(jié)束等。開始主程序請求繪制食物加載外部圖片在屏幕范圍內(nèi)隨機(jī)初始化食物的坐標(biāo)食物的坐標(biāo)是否與蛇重合是否滿足繪制食物的條件進(jìn)行繪制是結(jié)束否圖 Food 類功能的流程圖 主游戲邏輯及 Game 類Game 類是游戲的主類。如果食物滿足顯示的條件,便用 Graphics 的 drawImage 將食物予以顯示。首先創(chuàng)建隨機(jī)數(shù) rand,對食物的位置(pos_x, pos_y)進(jìn)行隨機(jī)設(shè)置,隨機(jī)數(shù)必須控制在屏幕的顯示范圍之內(nèi),這也是載入屏幕的高度和寬度的意義所在。Food 類的一個(gè)主要函數(shù)是設(shè)置食物的位置函數(shù) setPos。L o g o 界面程序開始菜單主程序調(diào)整游戲難度游戲幫助界面作者介紹顯示最高紀(jì)錄無線網(wǎng)絡(luò)對戰(zhàn)客戶機(jī) 服務(wù)器主程序 主程序開始結(jié)束退出圖 程序主框架流程圖 Food 類Food 類主要實(shí)現(xiàn)的功能是主要用于繪制食物。其中第一個(gè)選項(xiàng)是進(jìn)入單人游戲,第二個(gè)選項(xiàng)是進(jìn)行游戲的難度等級調(diào)整,第三個(gè)選項(xiàng)是游戲的幫助界面,第四個(gè)選項(xiàng)顯示游戲作者的相關(guān)信息,第五個(gè)選項(xiàng)是記錄游戲的最高紀(jì)錄,第六個(gè)選項(xiàng)是進(jìn)行無線網(wǎng)絡(luò)對戰(zhàn),需要兩臺機(jī)器進(jìn)行聯(lián)網(wǎng)游戲。在設(shè)置好 mandlistener 后,需要調(diào)用 setCommandListener()以將按鈕事件激活。繼承了 mandListener 的類必須擁有 mandAction(),以決定對按鍵采取什么樣的行為。通過加載 Logo 圖片顯示出 Logo 界面,之后進(jìn)入游戲的主菜單。進(jìn)入游戲首先顯示游戲的 Logo 界面,Logo 的顯示時(shí)間為 3 秒鐘,3 秒鐘之后游戲便會(huì)進(jìn)入主菜單,或者在 Logo 顯示時(shí)按任意鍵便可進(jìn)入游戲的主菜單。該類中擁有可以管理程序的創(chuàng)建、開始、暫停(手機(jī)中很可能有正在運(yùn)行程序卻突然來電的情況,這時(shí)應(yīng)進(jìn)入暫停狀態(tài)。第四章 程序分析和具體實(shí)現(xiàn) 游戲的開始菜單每個(gè) MIDlet 程序都必須有一個(gè)主類,該類必須繼承自 MIDlet。由于以上介紹的減少變量、函數(shù)的命名長度的關(guān)系, 文件中減少這些冗余的信息。混淆器將代碼中的所有變量、函數(shù)、類的名稱變?yōu)楹喍痰挠⑽淖帜复?,如果缺乏相?yīng)的函數(shù)名指示和程序注釋,即使被反編譯,也將難以閱讀。如果不加以施行有效的措施,將造成嚴(yán)重的后果。然 很容易被反編譯為源代碼,從而不能保護(hù)作者的知識成果。 混淆器(Obfuscator)的使用Java 語言并沒有完全編譯成二進(jìn)制可執(zhí)行文件, 文件是一種介于源程序和二進(jìn)制之間的一中基于半解釋的字節(jié)碼,需要虛擬機(jī)來執(zhí)行。物體之間重疊時(shí)最上層圖片也不會(huì)覆蓋超過其有效象素外的部分。 PNG 圖片格式PNG(Portable Network Graphics)格式是 MIDlet 唯一支持的圖象格式 [14],PNG 具體格式由 PNG Specification,Version 定義的。利用輸入輸出流可以寫入及讀取不同數(shù)據(jù)類型的數(shù)據(jù),做法是在寫入數(shù)據(jù)時(shí)先將一個(gè) DataOutputStream 數(shù)據(jù)流對象串接到一個(gè)ByteArrayOutStream 數(shù)據(jù)流對象,然后再依字段的數(shù)據(jù)類型用 writeInt()、writeBoolean() 等方法寫入,最后把 Byte
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1