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

正文內(nèi)容

畢業(yè)設(shè)計(jì)報(bào)告---3d多人在線角色扮演游戲(參考版)

2024-12-05 16:04本頁面
  

【正文】 所以要從根本上處理這個(gè)問題還是要采取兩個(gè)辦法: 把所有的可能作弊的動(dòng)作全部轉(zhuǎn)移到服務(wù)器段來運(yùn)行,使作弊者無法得到數(shù)。 6. 其他處理 游戲防盜版 數(shù)據(jù)發(fā)送到運(yùn)營商的服務(wù)器里的,通過這些數(shù)據(jù)就能知道 玩家 是不是做了違反游戲公平的事情了 ,比如說是刷 BUG, 玩家 的位置數(shù)據(jù)不變,但是,其他的經(jīng)驗(yàn)值,經(jīng)驗(yàn)之類的數(shù)據(jù)卻異常暴增,工作人員查起來就能很明顯得看出來 游戲防外掛 如今市場上流行的外掛無外乎兩類: 輔助型外掛, 作弊型外掛。 在為優(yōu)化前客戶端加載資源速度比較慢,而且容易出現(xiàn)漏加載,客戶端體積很大。 動(dòng)畫渲染優(yōu)化 對(duì)于使用 DirectX 進(jìn)行動(dòng)畫渲染,基本上以及沒有優(yōu)化可以,基本上都是使用微軟的API,我們能優(yōu)化的就只有自己的代碼,減少代碼的編寫重復(fù)率。 SendNetworkMessage(amp。 //MoveAction 收到響應(yīng)是消息夠經(jīng)過處理 if(MoveAction != LastMove) 第 28 頁 共 30 頁 sStateChangeMessage Msg。所以經(jīng)過反復(fù)思量,采用消息事件 的方法處理鍵盤事件。這樣做會(huì)導(dǎo)致進(jìn)行游戲時(shí)候鍵盤會(huì)有被占鍵的 BUG,導(dǎo)致角色失控。 碰撞檢測(cè)優(yōu)化 為了優(yōu)化 CheckSphereIntersect 功能函數(shù),可以在功能函數(shù)調(diào)用的代碼中不使用 sqrt,而是自己編寫函數(shù),計(jì)算兩者間距離公式 距離 = X*X+Y*Y+Z*Z,然后計(jì)算球半徑距離公式 球半徑 = (Radius1 + Radius2)*( Radius1 + Radius2)* 最后在判斷兩者。 通信機(jī)制優(yōu)化 該實(shí)現(xiàn)由于是多個(gè)客戶端與服務(wù)端使用網(wǎng)絡(luò)通迅,因此數(shù)據(jù)包裝定義采用了類似windows 的消息機(jī)制,這種通行對(duì)于流量來說比較少能提高服務(wù)端的壓力,而客戶端不易出現(xiàn)延時(shí)情況。 2. 使我們有機(jī)會(huì)通過用初始化取代賦值來達(dá)到性能的提升,從前聲明只能放在開頭,然 而往往開始的時(shí)候我們還沒有獲得我們想要的值,因此初始化所帶來的好處就無法被應(yīng)用。這樣做可以有兩個(gè)好處: 1. 確保了對(duì)象在它被使用前不會(huì)被程序的其他部分惡意修改。 在 C++中聲明可以出現(xiàn)在程序的任何位置。同樣,對(duì) postfix 和prefix 運(yùn)算符的選擇也會(huì)影響性能。那些額外的代碼都是用來支持調(diào)試的。然后當(dāng)你做了這件 第 27 頁 共 30 頁 事情的時(shí)候切忌從 debugversion 進(jìn)行推斷,因?yàn)?debugversion 中包含了許多額外的代碼。 客戶日方面的性能指標(biāo)考量,客戶端在進(jìn)行大規(guī)模 PK 戰(zhàn)斗時(shí)候是否會(huì)出現(xiàn)位置 bug,在進(jìn)行大規(guī)模渲染時(shí)是否會(huì)造成客戶端軟件或者系統(tǒng)崩潰重新啟動(dòng)。服務(wù)器是否能進(jìn)行 150 人線同時(shí) PK考量。 else { if(Length != NULL) *Length = Dist。 if(Hit == TRUE) { Size = (float)sqrt(XDiff*XDiff+YDiff*YDiff+ZDiff*ZDiff)。v, amp。FaceIndex, amp。vecDir, amp。 D3DXIntersect(m_Meshm_Mesh,amp。vecDir, amp。他是一個(gè)非常有用的功能函數(shù)。出于這個(gè)原因,必須告之相交點(diǎn)是否位于多邊形的邊緣之內(nèi),而完成之一點(diǎn)有點(diǎn)難度。 為了 檢測(cè)一個(gè)多邊形是否堵塞了節(jié)點(diǎn)之間的道路,可以在兩個(gè)點(diǎn)之間“發(fā)射”出一條想象中的射線,以檢測(cè)它是否與一個(gè)平面相交。 游戲碰撞檢測(cè) 在游戲中,大多數(shù)角色并不是超級(jí)英雄,所以他們并不能穿透墻壁。 //0 }DPN_APPLICATION_DESC。 //未使用 PVOID pvApplicationReservedData。 //會(huì)話密碼(如果有的話) 第 26 頁 共 30 頁 PVOID pvReservedData。 //當(dāng)前玩家數(shù) WCHAR *pwszSessionName。 //設(shè)置應(yīng)用程序 GUID DWORD dwMaxPlayers。 //會(huì)話標(biāo)志 GUID guidlnstance。這些信息包含在一個(gè)個(gè)體結(jié)構(gòu)中: ty pedef struc_DPN_APPLICATION_DESC{ DWORO dwSize。可以將消息處理函數(shù)想象成一個(gè)漏斗,如圖所示。 游戲 消息處理 要實(shí)現(xiàn)消息處理,必須創(chuàng)建消息處理回調(diào)函數(shù)。原來的套接字將繼續(xù)偵聽新的連接請(qǐng)求,而新的請(qǐng)求可以通過 accept()函數(shù)的再一次笤俑而獲得接受。一旦將套接字設(shè)置成了偵聽連接,實(shí)際的連接就可以由 accept()函數(shù)來完成。DPN_APPLICATION_DESC,同時(shí)也傳遞地址結(jié)構(gòu)的長度。 m_Players[i].(, m_Players[i].Direction,)。要使用攝像機(jī)追蹤方位。 Point 函數(shù)用來確定觀察點(diǎn)的方位并在瞬間將它指向一 個(gè)特定的方向。它與 cWorldPosition 類非常類似。確保傳遞給 GetMatrix 函數(shù)的是當(dāng)前正在用來計(jì)算矩陣,用矩陣的值改變角色的移動(dòng)。雖然處理世界變換矩陣并不難,但是用一個(gè)類來處理諸如世界坐標(biāo)、旋轉(zhuǎn)值以及縮放因子等所有細(xì)節(jié),就更簡單明了。 m_Players[i].()。m_Graphics)。m_Camera)。經(jīng)過以上的準(zhǔn)備,就可以使用 Render 函數(shù)渲染多邊形了。使用光照可以通過很多方式實(shí)現(xiàn)很多效果,基于這個(gè)原因,這里就講有關(guān)光照的一切都匯總到一個(gè)名為 cLight的類中。在 3D 渲染中如果不使用燈光,那么屏幕上一切都是黑色的。 Alpha 混合能夠帶來奇妙的效果,而且還允許程序員指定精確的混合值。缺省情況下,顯示模式 被設(shè)置成使用不帶 Z換成區(qū)的窗口鏡像輸出。一旦初始化了 cGraphics對(duì)象,就能夠同幾乎所有圖形內(nèi)核的類組件結(jié)合起來使用。要使用 cNetworkClient:: Connect 建立連接,首先必須使用cNetworkAdapter類對(duì)象選出一個(gè)網(wǎng)絡(luò)配適器。 使用 cNetowrkServer 處理服務(wù)器: 第 24 頁 共 30 頁 處理網(wǎng)絡(luò)服務(wù)器端,需要使用 cNetowrkServer 類,這個(gè)類用于初始化DirectPlay服務(wù)器對(duì)象、主持游戲回話,處理收到和發(fā)送的網(wǎng)絡(luò)消息。 網(wǎng)絡(luò)適配器類+ H R E S U L T W I N A P I N e t M s g H a n d le r+ 初始化 ()+ 關(guān)閉 ()+ 取網(wǎng)絡(luò)適配器 ()+ 取名字 ()+ *G e t G U I D ( )客戶端類+ 初始化 ()+ 關(guān)閉 ()+ 連接 ()+ 斷開 ()+ 接收 ()+ 發(fā)送 ()+ 發(fā)送文檔 ()服務(wù)端類+ 初始化 ()+ 關(guān)閉 ()+ 連接 ()+ 斷開 ()+ 接收 ()+ 發(fā)送 ()+ 發(fā)送文檔 ()+ 斷開玩家 ()客戶端或服務(wù)端( c A p p )c L i e n t c Se r v e r 使用 cNetworkAdapter 查詢網(wǎng)絡(luò)配適器: cNetworkAdapter 類用于枚舉系統(tǒng)上安裝了 TCP/IP 設(shè)備。 網(wǎng)絡(luò)內(nèi)核 此內(nèi)核用于講客戶端連接到 Inter 以及一些大型的在線服務(wù)器。此內(nèi)核能夠改變樂器聲音并帶來獨(dú)特的音樂感受。使用輸入內(nèi)核使用起來比較容易,只要實(shí)例化一個(gè) cInput 類對(duì)象及多個(gè) cInputDevice 類對(duì)象即可,但是要記得在使用之前,初始化各個(gè)cInputDevice類對(duì)象。輸入設(shè)備和 cInputDevice類是輸入內(nèi)核種真正起作用的類。 第 23 頁 共 30 頁 輸入內(nèi)核 處理來自鍵盤、鼠標(biāo)和游戲桿的用戶輸入。 BOOL MapToMesh(cMesh *Mesh)。cAnimation部分代碼如下: //添加網(wǎng)格對(duì)象 BOOL Load(char *Filename, cMesh *MapMesh = NULL)。 使用 cAnimation 移動(dòng)網(wǎng)格: cAnimation類是網(wǎng)格動(dòng)畫組件,也是圖形內(nèi)核的最后一個(gè)類。 BOOL Scale(float XScale, float YScale, float ZScale)。 BOOL Rotate(float XRot, float YRot, float ZRot)。 BOOL Move(float XPos, float YPos, float ZPos)。如果要反復(fù)使用相同的網(wǎng)絡(luò),該怎么辦? cObject部分代碼如下: BOOL EnableBillboard(BOOL Enable = TRUE)。}} 使用 cObject 繪制對(duì)象: 要繪制網(wǎng)格,必須在網(wǎng)格定義和顯示器之間搭設(shè)一道橋梁。pDXEnum))) { pDXFileRelease()。 return FALSE。pDXFile))) return FALSE。當(dāng)然,這里除了要講述蒙皮網(wǎng)格外,還要講述標(biāo)準(zhǔn)網(wǎng)格。 return TRUE。m_matRotation, amp。 第 22 頁 共 30 頁 D3DXMatrixMultiply(amp。m_matRotation, amp。 D3DXMatrixMultiply(amp。matZRotation, m_ZRot)。matYRotation, m_YRot)。matXRotation, m_XRot)。 m_ZRot = ZRot。 m_XRot = XRot。cCamera部分代碼如下: BOOL cCamera::MoveRel(float XAdd, float YAdd, float ZAdd) { return Move(m_XPos + XAdd, m_YPos + YAdd, m_ZPos + ZAdd)。return TRUE。 D3DXMatrixRotationYawPitchRoll(amp。m_YRotation = YRot。 cWorldPosition部分代碼如下: //移動(dòng)世界矩陣 BOOL cWorldPosition::MoveRel(float XAdd, float YAdd, float ZAdd) {return Move(m_XPos + XAdd, m_YPos + YAdd, m_ZPos + ZAdd)。通過提供一種快速創(chuàng)建、設(shè)置以及渲染頂點(diǎn)集合的方法, cVertexBuffer類能夠減少次煩惱。 return TRUE。lf, amp。 = Strikeout。 = Italic。 = Size。lf, sizeof(LOGFONT))。 if(GraphicsGetDeviceCOM() == NULL)return FALSE。 cFont部分代碼如下 : BOOL cFont::Create(cGraphics *Graphics, char *Name, long Size, BOOL Bold, BOOL Italic, BOOL Underline, BOOL Strikeout) {LOGFONT lf。 使用 cFont: cFont處理文本和字體雖然 ID3DXFont對(duì)象處理起來比較容易,但是設(shè)置字體卻讓人痛苦不堪。 SetRange()。 SetDiffuseColor(255,255,255)。 SetType(D3DLIGHT_POINT)。cLight部分代碼如下: / /設(shè)置一個(gè)默認(rèn)的光點(diǎn) ZeroMemory(amp。 使用 cLight: cLight處理光照光照同材質(zhì)一樣簡單。 BOOL SetEmissiveColor(char Red, char Green, char Blue)。 BOOL SetSpecularColor(char Red, char Green, char Blue)。 BOOL SetAmbientColor(char Red, char Green, char Blue)。 cMaterial部分代碼如下: BOOL SetDiffuseColor(char Red, char Green, char Blue)。 // 返回高度(間距)的紋理 D3DFORMAT GetFormat()。 // 返回 TRUE,如果加載紋理 long GetWidth()。 cTextre部分代碼如下: BOOL Free()。 圖像和 cTexture: 紋理使 3D 看起來更加貨真價(jià)實(shí)。 BOOL SetTexture(short Num, cTexture *Texture)。 第 20 頁 共 30 頁 BOOL SetLight(long Num, cLight *Light)。 BOOL SetWorldPosition(cWorldPosition *WorldPos)。 如果沒有使用 Z緩沖,就不要調(diào)用 Clear 函數(shù),而要使用 ClearDisplay 函數(shù),因?yàn)?Clear 函數(shù)需要一個(gè) Z緩沖值。 cAnimation 類要同 cObject類結(jié)合起來 圖形系統(tǒng)和 cCraphics:
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1