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

正文內(nèi)容

基于j2se的坦克大戰(zhàn)_畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-08-15 19:38 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 腦、移動(dòng)設(shè)備,用的都是 J2ME。但是,大部分非企業(yè)級(jí)軟件還是在 J2SE 上開(kāi)發(fā)的比較多。首先,這是因?yàn)楹芏嗟膽?yīng)用軟件都是在 J2SE 上開(kāi)發(fā)的;其次, J2SE 是和 J2EE 兼容的,企業(yè)版是在標(biāo)準(zhǔn)版上的擴(kuò)充,在 J2SE 的版本上開(kāi)發(fā)的軟件,拿到企業(yè)的平臺(tái)上是一樣可以運(yùn)行的;再次,一般開(kāi)發(fā)還是在 J2SE 的環(huán)境上,只是說(shuō) J2ME 提供微型版的一個(gè)環(huán)境。在J2SE 上虛擬出一個(gè)環(huán)境,開(kāi)發(fā)出來(lái)的應(yīng)用軟件是可以拿到微型版上運(yùn)行的。 聯(lián)機(jī)通信機(jī)制 網(wǎng)絡(luò)編程,簡(jiǎn)單地理解就是兩臺(tái)計(jì)算機(jī)相互通信。其基本模型就是客戶機(jī) /服務(wù)器模型,也就是通信雙方中的一方必須提供一個(gè)固定的位置,而另一方只需要知道這個(gè)固定的位置,并且建立兩者之間的聯(lián)系,然后完成數(shù)據(jù)交換。這里提供固定位置的一方通常稱為服務(wù)器,而建立聯(lián)系的一方稱為客戶端。 Socket(中文意思為插座),基于客戶機(jī) /服務(wù)器的 Soctet 通信模式如圖 所示: 8 圖 基于客戶機(jī) /服務(wù)器的 Soctet 通信模式圖 當(dāng)客戶程序需要與服務(wù)器程序通訊的時(shí)候,客戶程序在客戶機(jī)創(chuàng)建一個(gè)socket 對(duì)象, Socket 類(lèi) 有 幾 個(gè) 構(gòu) 造 函 數(shù) 。 兩 個(gè) 常 用 的 構(gòu) 造 函 數(shù) 是 Socket(IAddress addr, int port) 和 Socket(String host, int port),兩個(gè)構(gòu)造函數(shù)都創(chuàng)建了一個(gè)基于 Socket 的連接服務(wù)器端 流套接字的流套接字。兩個(gè)函數(shù)都通過(guò)參數(shù) port 獲得服務(wù)器的端口號(hào)。假設(shè)已經(jīng)建立連接了,網(wǎng)絡(luò) API 將在客戶端基于 Socket 的流套接字中捆綁客戶程序的 IP 地址和任意一個(gè)端口號(hào),否則兩個(gè)函數(shù)都會(huì)拋出一個(gè) IOException 對(duì)象。如果創(chuàng)建了一個(gè) Socket 對(duì)象,那么它可能通過(guò)調(diào)用 Socket 的 getInputStream()方法從服務(wù)程序獲得輸入流讀傳送來(lái)的信息,也可能通過(guò)調(diào)用 Socket 的 getOutputStream()方法獲得輸出流來(lái)發(fā)送消息。在讀寫(xiě)活動(dòng)完成之后,客戶程序調(diào)用 close()方法關(guān)閉流和 流套接字 。 Java 圖形編程 Java 中的 Graphics 類(lèi)是用于繪圖和顯示格式化文本的工具類(lèi)。在 Java 程序中繪圖必須在一個(gè)窗口(容器)中進(jìn)行,繪圖窗體經(jīng)常被設(shè)計(jì)為一個(gè)組件容器。一般首先在一個(gè)面板中進(jìn)行繪制,然后再將這個(gè)面板添加到顯示窗口中去。 Graphics 類(lèi)是在 包中申明,顯示格式化文本和繪圖時(shí)通過(guò)調(diào)用Graphics 類(lèi)的 draw()方法實(shí)現(xiàn)的,例如 drawString(String),drawLine()等。繪圖采用的坐標(biāo)系是原點(diǎn)在左上角,縱軸向下以像素為單位的坐標(biāo)系。 創(chuàng)建 Socket 類(lèi)的對(duì)象 指定服務(wù)器端公認(rèn)的 Socket地址和端口 在 Socket 上監(jiān)聽(tīng)客戶端的鏈接請(qǐng)求 接收客戶端的請(qǐng)求信息 解釋并處理請(qǐng)求信息 向服務(wù)器發(fā)出請(qǐng)求 向服務(wù)器端發(fā)送鏈接請(qǐng)求 創(chuàng)建 Socket 類(lèi)對(duì)象 客戶端 將處理結(jié)果返回給客戶端 接收服務(wù)結(jié)果 服務(wù)請(qǐng)求 服務(wù)響應(yīng) 服務(wù)器 端 9 本章小結(jié) 在本章節(jié)中首先介紹了該系統(tǒng)的運(yùn)行環(huán)境,值的注意的是軟件環(huán)境的配置,因?yàn)檎麄€(gè)系統(tǒng)都是在虛擬環(huán)境下運(yùn)行的,所以虛擬環(huán)境對(duì)于整個(gè)設(shè)計(jì)的調(diào)試和運(yùn)行至關(guān)重要;其次對(duì)開(kāi)發(fā)工具 的簡(jiǎn)單介紹,利用 eclipse 開(kāi)發(fā)項(xiàng)目,是可以提高項(xiàng)目的開(kāi)發(fā)效率。還有是對(duì)一些技術(shù)理論, J2SE 框架, Java 語(yǔ)言,系統(tǒng)運(yùn)行所支持的操作系統(tǒng),聯(lián)機(jī)通信機(jī)制及 Java 圖形編程等理論做了簡(jiǎn)單的介紹,為本系統(tǒng)后期實(shí)現(xiàn)圖形化界面和網(wǎng)絡(luò)通信做了理論支持。 第 3 章 系統(tǒng)設(shè)計(jì) 系統(tǒng)功能設(shè)計(jì) 坦克 大戰(zhàn)總體功能設(shè)計(jì) 坦克大戰(zhàn)游戲 主要實(shí)現(xiàn) 玩家參加游戲的 整個(gè)流程,用戶 登陸游戲客戶端選擇游戲模式,可分為單機(jī)模式和網(wǎng)絡(luò)對(duì)戰(zhàn)模式 , 選擇單機(jī)模式可以直接進(jìn)入游戲狀態(tài);選擇網(wǎng)絡(luò)對(duì)戰(zhàn)模式,在啟動(dòng)服務(wù)器后,玩家需要選擇自己的角色,用戶名和ID等玩家相關(guān) 資料,成功后使用其 賬 號(hào) 進(jìn)行 登錄 游戲 (只有 成功 登錄 的玩家 才 能參與網(wǎng)絡(luò)對(duì)戰(zhàn)游戲 功能); 登陸玩家就 可以 通過(guò)控制鍵盤(pán)操作 , 加入對(duì)戰(zhàn)游戲。整個(gè)網(wǎng)絡(luò)版坦克大戰(zhàn)游戲 流程 圖如圖 : 10 圖 網(wǎng)絡(luò)坦克大戰(zhàn)游戲 流程 TankClient類(lèi)基本功能分析 TankClient 類(lèi)是整個(gè)系統(tǒng)的核心部分,它承擔(dān)整個(gè)系統(tǒng)的所有可實(shí)現(xiàn)功能的調(diào)度工作。 是整個(gè)游戲運(yùn)行的場(chǎng)所。 TankClient 類(lèi)設(shè)計(jì)流程圖如圖 所示: 初 始 化 游戲模式 對(duì) 戰(zhàn) 對(duì) 戰(zhàn) 隨機(jī)產(chǎn)生敵方坦克 玩家坦克 判斷勝負(fù) 玩家一 玩家二 玩家一 玩家二 敵方坦克 我方坦克 判斷勝負(fù) 結(jié) 束 選擇角色,填寫(xiě)信息 11 圖 TankClient 類(lèi)設(shè)計(jì)流程 TankClient 類(lèi)是主類(lèi),通過(guò)調(diào)用其他類(lèi)中封裝的方法來(lái)使整個(gè)系統(tǒng)運(yùn)行起來(lái),下面顯示 TankClient 與各個(gè)類(lèi)之間的關(guān)系如圖 所示: 圖 游戲系統(tǒng)類(lèi)關(guān)聯(lián)圖 Tank 類(lèi)基本功能分析 Tank(坦克)類(lèi)中,封裝了一些變量屬性,包括坦克自己的大小開(kāi)始 初始化坦克 對(duì)戰(zhàn)雙方玩家坦克由鍵盤(pán)控制移動(dòng) 發(fā)射炮彈 碰撞檢測(cè)(坦克和子彈) 不處理 同角色坦克 產(chǎn)生爆炸 不同角 色坦克 判斷勝負(fù) 結(jié)束 TankClient 類(lèi)(主類(lèi)) Tank 類(lèi)(我方) Tank 類(lèi)(敵方) New 參數(shù) 1 New 參數(shù) 2 調(diào)用 Missile 類(lèi) 打中 調(diào)用 Explode 類(lèi)產(chǎn)程爆炸 判斷勝負(fù) 鍵盤(pán)控制移動(dòng) 鍵盤(pán)控制移動(dòng) 打擊 12 ( WIDTH,HRIGHT),運(yùn)動(dòng)速度 (SPRRD_X:在 x軸方向的速度; SPEED_Y:在 Y軸方向的速度 )、生命值控制( life)、坦克編號(hào)( id)、坦克名 (name)、方向控制 (dir)、生死控制 (live)、好壞控制 (good)的變量等。 Tank 類(lèi)中沒(méi)有 main 函數(shù),不是主類(lèi) ,它當(dāng)中只封裝一些變量屬性和靜態(tài)方法,被 TankClient 類(lèi)調(diào)用來(lái)實(shí)現(xiàn)坦克的一系列動(dòng)作。 Tank 類(lèi)中的主要方法 羅列如下: ( 1) getRect()方法 public Rectangle getRect() { return new Rectangle(x, y, , ); } Rectangle 類(lèi)是碰撞檢測(cè)的輔助類(lèi),通過(guò)得到子彈的 x, y 坐標(biāo)和寬高度,檢測(cè)兩個(gè)矩形是否碰撞(相交); ( 2) draw()方法:負(fù)責(zé)將所有的活動(dòng)在屏幕上畫(huà)出來(lái); ( 3) move()方法:主要負(fù)責(zé)控制坦克的移動(dòng),包括 8個(gè)方向(左,左上,上,右上,右,右下,下,左下)的控制以及給坦克一個(gè)移動(dòng)的速度; ( 4) keyPressed()方法:設(shè)定使用鍵盤(pán)的“↑”“↓”“←”“→”鍵控制坦克移動(dòng); ( 5) keyReleased()方法:處理按鍵抬起事件,抬起“ CTRL”鍵時(shí),發(fā)射炮彈并加入新炮彈,能夠逐一發(fā)射每一發(fā)炮彈、抬起“ A”鍵可以發(fā)射超級(jí)炮彈等功能; ( 6) locationDirection()方法:定義了炮筒方向,可以向八個(gè)方向發(fā)射炮彈; ( 7) fire()方法:處理發(fā)送子彈的方法; ( 8) bumpWithWall()方法:主要負(fù)責(zé)處理坦克撞墻事件; ( 9) bumpWithTank()方法 :主要到負(fù)責(zé)處理坦克和坦克相撞事件; Missile類(lèi)基本功能分析 Misslile(子彈 )類(lèi)和 Tank 類(lèi)一樣,只封裝一些變
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1