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

正文內容

基于客戶端服務器架構的三維網(wǎng)絡游戲畢業(yè)論文(編輯修改稿)

2025-07-24 20:31 本頁面
 

【文章內容簡介】 點。如果是一個策略游戲,稍微的一點延遲可以忍受,但不允許關鍵的移動或者進攻指令出錯,這時,TCP 是個不錯的選擇。如果是一個第一人稱視角游戲,為了保證 60 幀/秒的幀率,獲得游戲的流暢性,UDP 協(xié)議是一個更好的選擇。Socket 編程已經(jīng)成為了網(wǎng)絡編程的規(guī)范,極大地便利了程序員編寫網(wǎng)絡應用程序。Socket 可以被視為一個簡單的輸入/輸出設備,它可以在兩個站點間打開一個通信信道。為了傳送信息,兩個站點都必須打開一個 Socket 連接對方。Socket 幫助程序員完成了數(shù)據(jù)的分割/組裝包工作,因此,程序員不必關心數(shù)據(jù)如何被分割和組裝。程序員只需要讓Socket 發(fā)送一段數(shù)據(jù),這段數(shù)據(jù)將完整地出現(xiàn)在網(wǎng)絡傳輸?shù)牧硪欢恕?基于 ADO 的數(shù)據(jù)庫訪問技術ADO (ActiveX Data Objects) 是微軟公司開發(fā)的一個用于存取數(shù)據(jù)源的 COM 組件,用以實現(xiàn)訪問關系或非關系數(shù)據(jù)庫中的數(shù)據(jù)。它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式OLE DB 的一個中間層。允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關心數(shù)據(jù)庫是如何實現(xiàn)的,而只用關心到數(shù)據(jù)庫的連接。訪問數(shù)據(jù)庫的時候,關于 SQL 的知識不是必要的,但是特定數(shù)據(jù)庫支持的 SQL 命令仍可以通過 ADO 中的命令對象來執(zhí)行。像 Microsoft 的其它系統(tǒng)接口一樣, ADO 是面向對象的。它是 Microsoft 全局數(shù)據(jù)訪問(UDA )的一部分,Microsoft 認為與其自己創(chuàng)建一個數(shù)據(jù),不如利用 UDA 訪問已有的數(shù)據(jù)庫。為達到這一目的,Microsoft 和其它數(shù)據(jù)庫公司在它們的數(shù)據(jù)庫和 Microsoft 的OLE 數(shù)據(jù)庫之間提供了一個“橋”程序,OLE 數(shù)據(jù)庫已經(jīng)在使用 ADO 技術。作為ActiveX 的一部分,ADO 也是 Microsoft 的組件對象模式(COM)的一部分,它的面向組件的框架用以將程序組裝在一起。ADO 是對當前微軟所支持的數(shù)據(jù)庫進行操作的最有效和最簡單直接的方法,它是一種功能強大的數(shù)據(jù)訪問編程模式,從而使得大部分數(shù)據(jù)源可編程的屬性得以直接擴展。第 2 章 系統(tǒng)分析系統(tǒng)分析是指在管理信息系統(tǒng)開發(fā)的生命周期中應用系統(tǒng)思想和系統(tǒng)科學的原理進行分析工作的方法和技術。其目標就是按系統(tǒng)規(guī)劃所定的某個開發(fā)項目范圍內明確系統(tǒng)開發(fā)的目的和用戶的信息需求,提出系統(tǒng)的邏輯方案。分析階段獨立于系統(tǒng)實現(xiàn)環(huán)境,可以保證建立起來的系統(tǒng)結構具有相對的穩(wěn)定性,便于系統(tǒng)維護、移植或擴充。 概述系統(tǒng)分析是管理信息系統(tǒng)的一個主要和關鍵階段,負責這個階段的關鍵人物是系統(tǒng)分析員,完成這個階段任務的關鍵問題是開發(fā)人員與用戶之間的溝通。系統(tǒng)分析從系統(tǒng)需求入手,從用戶觀點出發(fā)建立系統(tǒng)用戶模型,用戶模型從概念上全方位表達系統(tǒng)需求及系統(tǒng)與用戶的相互關系。系統(tǒng)分析在用戶模型的基礎上,建立適應性強,獨立于系統(tǒng)實現(xiàn)環(huán)境的邏輯結構。 需求分析 功能需求:(1)客戶端啟動后,進入登錄界面,由用戶輸入用戶名和密碼,然后連接服務器驗證是否被允許登錄。(2)登錄成功后,首次向服務器發(fā)送數(shù)據(jù),以獲取用戶的相關數(shù)據(jù)。(3)根據(jù)所獲取的數(shù)據(jù),進行游戲場景的載入和顯示。(4)獲取用戶的鍵盤和鼠標輸入狀態(tài),并做出相應的操作,以達到人機交互的目的。(5)用戶在場景中移動,并根據(jù)預先設置進入游戲狀態(tài)。(6)對于每一個游戲狀態(tài)結束后,向服務器發(fā)送數(shù)據(jù),以更新用戶信息。:(1)服務器啟動后,檢測所有初始化工作是否完成,并顯示相關結果。(2)等待客戶端的連接,驗證是否允許用戶登錄。(3)接收客戶端發(fā)來的數(shù)據(jù),做出相應處理。(4)對于每一個操作,做好日志記錄。 數(shù)據(jù)需求客戶端和服務器端按照事先約定的數(shù)據(jù)包格式,實時地進行數(shù)據(jù)交換,以保證用戶信息的正確性。同時,服務器端要不斷更新數(shù)據(jù)庫和做好日志記錄,以便出現(xiàn)問題后可以依此維護和調試。 用戶需求。,修改或提升游戲功能。 可行性分析 經(jīng)濟可行性該系統(tǒng)為畢業(yè)設計,目的在于自主學習和研究,開發(fā)所需的硬件環(huán)境并不高,一般利用自己的 PC 機就可以進行開發(fā)。由于系統(tǒng)并不復雜,所需的軟件資源和文檔資源通過翻閱書籍和網(wǎng)上搜索均能得到,人力、物力的支出較少。因此在經(jīng)濟上是可行的。 技術可行性該系統(tǒng)使用 C/C++語言,利用面向過程和面向對象方法,結合 Microsoft DirectX API,實現(xiàn)的功能并不是很復雜。因此在技術上是可行的。 操作可行性該系統(tǒng)界面設計簡單,包括了常用功能。同時可以根據(jù)主流游戲操作方式,動態(tài)修改,使其能夠適合絕大多數(shù)的用戶。因此在操作上是可行的。第 3 章 系統(tǒng)的設計與實現(xiàn)總體設計是在經(jīng)過了需求分析與可行性分析之后,為明確各項功能需求的落實與否,以及以后進一步設計開發(fā)而編寫的,它的依據(jù)是需求分析。總體設計是軟件工程中的生存期的重要環(huán)節(jié),它基本確定了軟件中關于“怎樣做”的大致框架。 總體設計在 TCP/IP 網(wǎng)絡應用中,通信的兩個進程間相互作用的主要模式是客戶端/服務器模式(Client/Server),即客戶端向服務器提出請求,服務器接收到請求后,提供相應的服務。 客戶端/服務器模式客戶端/服務器模式的建立基于以下兩點:首先,建立網(wǎng)絡的起因是網(wǎng)絡中軟硬件資源、運算能力和信息不均等,需要共享,從而造就擁有眾多資源的主機提供服務,資源較少的客戶端請求服務這一非對等作用。其次,網(wǎng)間進程通信完全是異步的,相互通信的進程間既不存在父子關系,又不共享內存緩沖區(qū),因此需要一種機制為希望通信的進程間建立聯(lián)系,為二者的數(shù)據(jù)交換提供同步,這就是基于客戶端/服務器模式的 TCP/IP。客戶端/服務器模式在操作過程中采取的是主動請求的方式。,并根據(jù)請求提供相應的服務:(1)打開一個通信通道并告知本地主機,它愿意在某一地址和端口上接收客戶端請求。(2)等待客戶端請求到達該端口。(3)接收到重復服務請求,處理該請求并發(fā)送應答信號。接收到并發(fā)服務請求,要激活一個新的進程(或線程)來處理這個客戶端請求。新進程(或線程) 處理此客戶端請求,并不需要對其它請求作出應答。服務完成后,關閉此新進程與客戶端的通信鏈路,并終止。(4)返回第二步,等待另一客戶端請求。(5)關閉服務器。:(1)打開一個通信通道,并連接到服務器所在主機的特定端口。(2)向服務器發(fā)服務請求報文,等待并接收應答;繼續(xù)提出請求。(3)請求結束后關閉通信通道并終止。 客戶端的總體設計(1)客戶端啟動后,進入登錄界面,由用戶輸入用戶名和密碼,然后連接服務器驗證是否被允許登錄。(2)登錄成功后,首次向服務器發(fā)送數(shù)據(jù),以獲取用戶的相關數(shù)據(jù)。(3)根據(jù)所獲取的數(shù)據(jù),進行游戲場景的載入和顯示。(4)獲取用戶的鍵盤和鼠標輸入狀態(tài),并做出相應的操作,以達到人機交互的目的。(5)用戶在場景中移動,并根據(jù)預先設置進入游戲狀態(tài)。(6)對于每一個游戲狀態(tài)結束后,向服務器發(fā)送數(shù)據(jù),以更新用戶信息。 服務器端的總體設計(1)服務器啟動后,檢測所有初始化工作是否完成,并顯示相關結果。(2)等待客戶端的連接,驗證是否允許用戶登錄。(3)接收客戶端發(fā)來的數(shù)據(jù),做出相應處理。(4)對于每一個操作,做好日志記錄。 客戶端的詳細設計與實現(xiàn) Win32 和 Direct3D 應用程序框架Windows 應用程序是基于事件響應的運行機制。程序從 WinMain()函數(shù)入口,其功能是首先定義一個 Windows 的窗口樣式、大小等,并創(chuàng)建、顯示和更新這個窗口。然后進入 MsgProc()消息循環(huán)。在 MsgProc()的 WM_CREATE 中,先創(chuàng)建登錄對話框窗口,連接遠程服務器,驗證用戶名和密碼,如果成功則創(chuàng)建主程序窗口,接著初始化 Direct3D,然后進入 WM_PAINT,WM_TIMER ,WM_COMMOND 等消息處理。MsgProc()窗口回調函數(shù)在整個運行周期中隨時對回調函數(shù)所定義的外部事件(鼠標移動、點擊,鍵盤按鍵,窗口變化和其它函數(shù)發(fā)出的消息) 做出反應。如圖 31 所示。圖 31 Windows 和 Direct3D 程序框架 登錄窗口的實現(xiàn)創(chuàng)建好 Win32 應用程序框架后,插入一個對話框資源,添加兩個 static 控件、兩個edit 控件和兩個 button 控件,在 WM_PAINT 中繪制背景圖,最后經(jīng)過排版,結果如圖 32 所示。圖 32 游戲登錄窗口 必備的數(shù)學知識要進行三維圖形程序的編寫,首先必須要了解的就是相關的數(shù)學知識,主要包括向量、矩陣和相應的變換。向量的兩個屬性是他的長度和他的頂點所指的方向。因此,可以用向量來模擬既有大小又有方向的物理模型。一般僅用向量來描述光線的照射方向,多邊形的朝向,以及在 3D 世界中攝像機所觀察的方向。向量為三維空間中表示方向提供了方便。一個 MN 的矩陣是由 m 行和 n 列的數(shù)字組成的矩陣列。行和列的數(shù)字就是這個矩陣的維數(shù)。在三維空間中,用矩陣來保存多邊形的頂點坐標,這樣就可以靈活地使用一個 44 的矩陣與之數(shù)乘、相加、逆和轉置來實現(xiàn)頂點的坐標變換。例如,先把向量 p=[5,0,0,1]在所有軸上縮小為原來的 1/5,然后繞著 y 軸旋轉 π/4 ,最后把它在 x 軸上平移 1 個單位,在 y 軸上平移 2 個單位,在 z 軸上平移 3 個單位,其流程和結果如圖 33 和 34 所示。圖 33 縮放矩陣 S、旋轉矩陣 Ry 和平移矩陣 T圖 34 經(jīng)過縮放、旋轉和平移后的結 Direct3D 基礎。一個場景是多個物體或模型的集合。一個物體可以使用三角形網(wǎng)格來近似表示,由三角形網(wǎng)格建立一個模型,稱之為建模。一個多邊形兩邊相交的點叫做頂點。為了描述一個三角形,通常指定三個點的位置來對應三角形的三個頂點,如圖 35 所示。圖 35 三角形的表示在 Direct3D 中的頂點除了包含位置坐標,還包含了許多附加屬性,如顏色,法線等。因此就需要創(chuàng)建一個自定義的頂點格式。struct Vertex{Vertex(){}Vertex(float x, float y, float z, float nx, float ny, float nz, float u, float v){_x = x。 _y = y。 _z = z。_nx = nx。 _ny = ny。 _nz = nz。_u = u。 _v = v。} float _x, _y, _z。 // 空間坐標 float _nx, _ny, _nz。 // 法線方向 float _u, _v。 // 貼圖坐標}。define FVF_VERTEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1)、世界空間和虛擬攝像機。本地空間又叫建??臻g(還可以叫做自身坐標系) ,這是定義物體三角形列的坐標系。本地空間簡化了建模的過程,它允許我們構造一個模型而不必考慮物體在世界中相對于其他物體的位置、大小和方向關系。一旦我們構造了各種模型,它們都在自己的坐標系中,因此我們需要通過進行平移、旋轉和縮放操作把它們都放到同一個世界坐標系中。最后使用虛擬攝像機,對世界進行坐標變換和投影,顯示到應用程序窗口中。如圖36 所示
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1