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

正文內(nèi)容

畢業(yè)設(shè)計報告---3d多人在線角色扮演游戲(編輯修改稿)

2025-01-06 16:04 本頁面
 

【文章內(nèi)容簡介】 + H e a d e r玩家類+ X Y Z+ D ire c t ion+ S p e e d消息頭+ T y p e+ S iz e+ P la y e rI D圖型類庫網(wǎng)絡(luò) 類庫消息包狀態(tài)消息+ S t a t e+ X P os , Y P os , Z P os+ D ire c t ion+ S p e e d+ F ire+ L a t e n c y玩家創(chuàng)建消息+ X P os , Y P os , Z P os+ D ire c t ion玩家銷毀消息 第 13 頁 共 30 頁 類說明 類 說明 cApp 主類,包含了進入游戲,渲染游戲,添加網(wǎng)格對象等 cClient 客戶端類繼承與 cNetworkClient cFrustum 檢查多維數(shù)據(jù)集或矩形 CNodeTreeMesh 樹節(jié)點,包含一些對象 3D坐標(biāo) sCreatePlayerMessage 創(chuàng)建一個玩家消息 sDestroyPlayerMessage 摧毀一個玩家消息 sMessage 消息隊列中的消息結(jié)構(gòu) sMessageHeader 在所有的消息中使用的消息頭結(jié)構(gòu) sPlayer 玩 家類里面包含玩家的屬性 sRequestPlayerInfoMessage 請求玩家參考消息 sStateChangeMessage 狀態(tài)信息的變化 流程圖 客戶端流程圖 服務(wù)端流程圖 第 14 頁 共 30 頁 TCP/TP協(xié)議 TCP 協(xié)議介紹 TCP—— 傳輸控制協(xié)議。 TCP 是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,在簡化的計算機網(wǎng)絡(luò) OSI模型中,它完成第四層傳輸層所指定的功能。在因特網(wǎng)協(xié)議族中 TCP 層是位于 IP 層之上,應(yīng)用層之下的中間層,不通主機的 應(yīng)用層之間經(jīng)常需要可靠的、像管道一樣的連接,但是 IP層不提供這樣的流機制,而是提供不可靠的包交換、 TCP所提供的服務(wù)的主要特點: ( 1)面向連接的傳輸 ( 2)端到端的通信 ( 3)高可靠性,確保傳輸數(shù)據(jù)的正確性,不出現(xiàn)丟失或亂序 ( 4)全雙工方式傳輸 ( 5)采用字節(jié)流方式,即以字節(jié)為單位傳輸字節(jié)序列 ( 6)緊急數(shù)據(jù)傳送功能 TCP 連接的建立 TCP 協(xié)議通過桑報文段完成連接的建立,這個過程成為三次握手,過程如下圖所示,其中 isn 為初始序號 第 15 頁 共 30 頁 TCP 連接終止 建立一個連接需要三次握手,而終止一個連接要經(jīng)過四次握手,這是由 TCP 的半關(guān)閉造成的。具體過程如下圖所示。 TCP 提供可靠性的方式 應(yīng)用數(shù)據(jù)被分割成 TCP 認(rèn)為最合適發(fā)送的數(shù)據(jù)塊。這和 UDP 完全不同,應(yīng)用程序產(chǎn)生的數(shù)據(jù)包長度保持不變,由 TCP 傳遞給 IP 的信息單位稱為報文段或段 TCP 如何確定報文段的長度。 當(dāng) TCP 發(fā)生一個段后,它啟動一個定時器,等待目的端確認(rèn)收到這個報文段,如果在不能即時收到一個確認(rèn),將重發(fā)這個報文段。 當(dāng) TCP 收到發(fā)自 TCP 連接另一端的數(shù)據(jù),它將發(fā)送一個確認(rèn)。這個確認(rèn)不是立即發(fā)送,通常將推遲幾分之一秒。 TCP 將保持它首部和數(shù)據(jù)的檢驗和。這 是一個端到端的檢驗和,目的是檢測數(shù)據(jù)在傳輸過程中的任何變化。 如果收到的端的檢驗和有差錯, TCP 將丟棄這個報文段和不確認(rèn)收到此報文段。既然TCP 報文段作為 IP 數(shù)據(jù)報來傳輸,而 IP 數(shù)據(jù)包的到達可能會失序,因此 TCP 報文段的到達也可能會失序。 如果必要, TCP 將對收到的數(shù)據(jù)進行重新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。既然 IP 數(shù)據(jù)報會發(fā)生重復(fù), TCO 的接收端必須丟棄重復(fù)的數(shù)據(jù)。 TCP 還能提供流量控制。 TCP 連接的每一方都有一個固定大小的緩沖空間。 TCP 的接收端只允許另一端大宋接收端緩沖區(qū)所能接納的數(shù)據(jù),這 將防止較快主機導(dǎo)致較慢主機的緩沖區(qū)溢出。 第 16 頁 共 30 頁 C/S模式以及 SOCKET C/S 模式 C/S( client/server)模式。它是軟件系統(tǒng)體系結(jié)構(gòu),通過 Client 端和 Server端的分配完成指定任務(wù)。 C/S模式也是當(dāng)前游戲程序中很流行的一種方式。油漆是網(wǎng)絡(luò)技術(shù)的發(fā)展,使得當(dāng)前很多系統(tǒng)都采用這種方式進行構(gòu)造,其最大的優(yōu)點是將計算機工作任務(wù)分別由客戶端呵呵服務(wù)端來共同完成,這樣有利于充分合理的利用系統(tǒng)資源。另外它的服務(wù)器端還可以將信息集中起來,任何客戶機都可以通過訪問服務(wù)器而獲得所需的信息。 Cli/Server 模型最終可歸結(jié)為一種“請求 /應(yīng)答”關(guān)系。一個請求總是首先被客戶發(fā)出,然后服務(wù)器總是被動地接受請求,返回客戶需要的結(jié)果。在客戶發(fā)出一個請求之前,服務(wù)器進程一直處于休眠狀態(tài)。一個客戶提出請求后,服務(wù)進程被“喚醒”并且創(chuàng)立線程為用戶提供服務(wù)(但也有使用線程池,而不需要創(chuàng)立),對客戶的請求做出所需應(yīng)答,如圖所示。 P2P 模式 P2P 作為一種點對點通信模式,它有別于傳統(tǒng)的 C/S 模式。傳統(tǒng)的 C/S 模式一般都有預(yù)定義的客戶端和服務(wù)器。而在 P2P模式轉(zhuǎn)并沒有明確的客戶端和服務(wù)器, 但其實在 P2P模型中每一臺計算機都可以是服務(wù)器,也可以看成是客戶機。在網(wǎng)絡(luò)中,傳統(tǒng)上的客戶機 /服務(wù)器通信模式中,發(fā)送服務(wù)請求或接收數(shù)據(jù)的計算機成為服務(wù)器。而在 P2P網(wǎng)絡(luò)模式中,計算機不僅接收數(shù)據(jù),還有發(fā)送數(shù)據(jù),不僅提出服務(wù)請求,還有接收對方的服務(wù)請求。 第 17 頁 共 30 頁 可維護性設(shè)計 通過充分應(yīng)用面向?qū)ο笤O(shè)計原則,代碼具有較強的可維護性。 滿足原則 1: DRY( Don39。t repeat yourself)。即不要寫重復(fù)的代碼,而是用“ GameCore”庫來抽象公有的東西。通過對世界坐標(biāo)系、 IDirect3D9 初始化 、燈光等功能進行包裝,較好地實現(xiàn)了該目標(biāo)。 滿足原則 3:封裝變化、開閉原則。服務(wù)端的簡單工廠設(shè)計模式使用,對擴展開放,對修改關(guān)閉,詳情見 ??梢栽诓恍薷脑械哪K的基礎(chǔ)上,擴展功能,其靈活性使得之后引進新代碼不會對現(xiàn)有的代碼造成影響。符合開閉原則、封裝變化的宗旨。 滿足原則 4:單一職責(zé)原則。項目的客戶端類數(shù)目接近 40 個,從靜態(tài)類圖可知,除“游戲視圖類”這個核心類外,其它類相互關(guān)聯(lián)非常簡潔明了。這種專注于單一的功能的設(shè)計,使類被修改的幾率變小?!坝螒蛞晥D類”因為將多個功能放在同一個類中,功能之間就形成了關(guān)聯(lián),改變其中一個功能,有可能中止另一個功能,需要新一輪的改進來避免可能出現(xiàn)的問題。 滿足原則 5:優(yōu)先利用組合而非繼承。以上靜態(tài)類圖表明所有類繼承層次不超過三層。如果可能的話,該設(shè)計還可以更加優(yōu)先利用組合而不是繼承,可進一步改進。組合允許在運行期間通過設(shè)置類的屬性來改變類的行為,也可以通過使用接口來組合一個類,它提供了更高的靈活性,并可以隨時實現(xiàn)。 滿足原則 6:接口分離原則。針對世界坐標(biāo)系、 IDirect3D9 初始化、燈光等功能,設(shè)計獨立出 “ core_Graphics 類”、“ cWorldPosition”、“ cLight 類”接口,避免應(yīng)用限入具體細(xì)節(jié)。 游戲的難點有以下幾點: 1. 使用 directx 3D 中的渲染 2. 游戲與服務(wù)器的網(wǎng)絡(luò)通信 3. 區(qū)分系統(tǒng)消息和玩家消息 4. 游戲的碰撞檢測 5. 三維世界中的世界矩陣變換 6. 三維網(wǎng)格動畫設(shè)置 7. 鍵盤輸入設(shè)備的創(chuàng)立 游戲內(nèi)核的創(chuàng)立 游戲內(nèi)核是用來簡化 DirectX和 windows編程的一些庫的集合。游戲內(nèi)核幾乎含有一個游戲工程需要的所有函數(shù),這些函數(shù)一般用于繪制圖像、播放聲音、處理用戶輸入以及處理應(yīng)用程序的處理過程。也就是說,使用游戲內(nèi)核,就無需在每次開始 一個新的游戲工程時,再去處理底層 DirectX或 Windows代碼。 系統(tǒng)內(nèi)核 用于處理 Windows 處理過程,包括注冊窗口類,創(chuàng)建應(yīng)用程序窗口以及處理進程、狀態(tài)和數(shù)據(jù)包。 第 18 頁 共 30 頁 c A p p l i c a t i o n+ ru n ( )+ 移動 ()+ 旋轉(zhuǎn) ()+ 顯示鼠標(biāo) ()狀態(tài)管理+ *m _S t a t e P a re n t+ 推 ()+ 拋出 ()+ 拋出全部 ()+ 過程 ()過程管理+ *m _P ro c e s s P a re n t+ 推 ()+ 拋出 ()+ 全部拋出 ()+ 過程 ()數(shù)據(jù)包+ *m _B u f+ m _S iz e+* 創(chuàng)建 ()+ 銷毀 ()+ 保存 ()+* 載入 () 使用 cApplication 核心對象: cApplication 是系統(tǒng)內(nèi)核中最有用的核心對象,它可以用于創(chuàng)建應(yīng)用程序的窗口和控制程序流。此對象能夠注冊窗口類、創(chuàng)建應(yīng)用程序窗口以及進入處理應(yīng)用程序窗口消息的消息泵,并且在適當(dāng)?shù)臅r候調(diào)用內(nèi)部的類函數(shù)。 cApplication 通過調(diào)用重載函數(shù): Init、 Shutdown和 Frame來處理應(yīng)用程序。 使用 cStateManager 處理狀態(tài): 當(dāng)創(chuàng)建游戲時,就能發(fā)現(xiàn) cStateManager要比游戲程序流的功能強很多。新的狀態(tài)管理引入了兩個概念:調(diào)用目的以及添加一個用戶自定義的數(shù)據(jù)指針,此指針指向 cStateManager中的函數(shù)。進程和 cProcessManager棧上的每一個函數(shù)在每幀都要被調(diào)用,除了這點小的不同以外, cProcessManager和 cStateManager非常相。cStateManager一樣,新的 cProcessManager也在 cProcessManager的基礎(chǔ)上加入了調(diào)用目的以及一個用戶自定義的指針。 cProcessManager 的類聲明同cStateManage 的類聲明類似,因此可以直接跳到后面使用 cProcessManager 的例子。 使用 cDataPackage 管理數(shù)據(jù): 通過加入兩個函數(shù)來對創(chuàng)建的數(shù)據(jù)包管理器進行修改,這兩個函數(shù)分別用于返回數(shù)據(jù)緩沖區(qū)的大小以及指向數(shù)據(jù)緩沖區(qū)的指針。 圖形內(nèi)核 用于繪制圖形。使用諸如動畫網(wǎng)格之類的 3D 方法渲染場景。 第 19 頁 共 30 頁 圖像類+ m _h W n d+ *m _p D 3D+ *m _p D 3D D e v ic e+ 初始化 ()+ 結(jié)束 ()+ 顯示 ()+ 開始場景 ()+ 結(jié)束場景 ()+ 開始精靈 ()+ 結(jié)束精靈 ()+ 等等 ()紋理類+ *m _G ra p h ic s+ *m _T e x t u re+ 加載 ()+2D 設(shè)備 ()材料類+ m _M a t e ri a l+ 取材質(zhì) ()燈類+ m _L ig h t+ 取范圍 ()+ 設(shè)置范圍 ()+ 取方向 ()+ 設(shè)置衰弱 ()視角類+ m _m a t W or ld+ m _m a t T ra n s la t ion+ m _m a t R ot a t ion+ 視角移動 ()+ 視角旋轉(zhuǎn) ()+ 更新 ()網(wǎng)格類+ m _M e s h e s+ m _N u m M e s h e s+ 加載 ()+ 取界 ()對象類+ A t t ri b u t e 1+ 更新框架 ()+ 畫框架 ()+ 畫網(wǎng)格 ()世界矩陣類+ m _m a t W or ld+ m _m a t R ot a t ion+ 世界旋轉(zhuǎn) ()+ 世界移動 ()+ 更新 ()動畫類+ *m _A n im a t ion S e t+ 加載 ()+ 映射到網(wǎng)格 ()+ 設(shè)置循環(huán) ()c A p p 類 說明 cCraphics 處理 Direct3D 的初始化,啟用狀態(tài)渲染以及設(shè)置紋 理、材質(zhì)和光照 cTexture 含有一個紋理以及一個用于將紋理的 2D部分繪制到顯示器上的函數(shù) cMaterial 含有一個材質(zhì)的定義 cLight 包含一個光照的定義 cFont 封裝了 ID3DXFont對象 cVertexBuffer 使對頂點緩沖的處理變得更容易 cWorldPosition 操縱世界變換矩陣,使程序員能夠快速定位、縮放和旋轉(zhuǎn)對象 cCamera 包含一個觀察變換矩陣,可以使用對象的接口修改此矩陣 cMesh 包含一個 .X 文件加載的網(wǎng)格的列表以及這些網(wǎng)格的材質(zhì)。 cMesh類要同 cObject類結(jié)合起來使用 cObject 表示 3D世界中的一個對象。 cObject 類控制了對象的方位、網(wǎng)格以及動畫狀態(tài) cAnimation 包含一個 .X 文件加載的動畫列表。 cAnimation 類要同 cObject類結(jié)合起來 圖形系統(tǒng)和 cCraphics: cCraphics 用于設(shè)置顯示模式和渲染狀態(tài)以及清除設(shè)備等等。一旦初始化了cCraphics 對象,就能夠同幾乎所有圖形內(nèi)核的類組件結(jié)合起來使用。 如果沒有使用 Z緩沖,就不要調(diào)用 Clear 函數(shù),而要使用 ClearDisplay 函數(shù),因為 Clear
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1