網(wǎng)絡(luò)游戲編程李哲1204211068

網(wǎng)絡(luò)游戲編程李哲1204211068

ID:39623770

大?。?36.86 KB

頁數(shù):21頁

時間:2019-07-07

網(wǎng)絡(luò)游戲編程李哲1204211068_第1頁
網(wǎng)絡(luò)游戲編程李哲1204211068_第2頁
網(wǎng)絡(luò)游戲編程李哲1204211068_第3頁
網(wǎng)絡(luò)游戲編程李哲1204211068_第4頁
網(wǎng)絡(luò)游戲編程李哲1204211068_第5頁
資源描述:

《網(wǎng)絡(luò)游戲編程李哲1204211068》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、三維魔方游戲程序設(shè)計1.本人所做的主要工作本人通過引進開發(fā)包DirectX和irrlichtEngine基于C++,來實現(xiàn)繪制三維的真實的九宮格虛擬魔方,并且通過鼠標控制其整體的旋轉(zhuǎn),和各個層的旋轉(zhuǎn)。課題需求分析2.1課題的功能需求繪制三維仿真魔方:繪制一個六面體,是一個3*3*3形式的魔方魔方的整體的縮放與旋轉(zhuǎn):通過鼠標控制魔方的旋轉(zhuǎn):通過鼠標點擊按鈕,控制其對應(yīng)面的旋轉(zhuǎn)2.2課題的性能需求在電腦上最好能都簡單的通過鼠標控制魔方游戲使其操作更簡單。涉及的主要工作原理和關(guān)鍵技術(shù)介紹3.1三維圖形繪制原理技術(shù)介紹采用c++語言和irrlic

2、htEngine對DirectX進行三維圖形開發(fā),首先介紹一下Device類,Device類用于完成DirectX里所有繪圖操作,我們可以把這個類假想為圖形卡,場景里所有其他圖形對象都依賴于Device,計算機里可以有多個Device。通過Direct3D繪制的每個對象都是有三角形組成的,一個三角形由三個點組成,而每個點都定義成一個向量來指定點的X、Y和Z坐標。DirectX中有一種定義頂點的結(jié)構(gòu),那就是CustomVertex類,只需要在渲染函數(shù)中添加繪制圖形代碼即可繪圖。21繪制圖元(primitives)根據(jù)其繪制方式,Device

3、類主要提供了如下四個方法,本次課程設(shè)計主要采用了如下繪圖方法:publicvoidDrawUserPrimitives(PrimitiveTypeprimitiveType,intprimitiveCount,objectvertexStreamZeroData);DrawUserPrimitives()方法通過讀取系統(tǒng)內(nèi)存中的頂點數(shù)據(jù)來繪制圖元。每次調(diào)用DrawUserPrimitives()方法時,頂點數(shù)據(jù)都是從系統(tǒng)內(nèi)存中傳遞到顯卡中,但通常對于大部分數(shù)據(jù)沒有變換的情況下,采用這種方式繪制圖元將導(dǎo)致每次渲染時都要從系統(tǒng)內(nèi)存中調(diào)用重復(fù)的

4、數(shù)據(jù),當頂點數(shù)據(jù)量較大時,會導(dǎo)致程序運行速度非常慢。繪制分段直線采用PrimitiveType.LineList類型。3.2魔方旋轉(zhuǎn)原理技術(shù)介紹魔方的旋轉(zhuǎn)主要是通過算法記錄旋轉(zhuǎn)前各個小塊的顏色,旋轉(zhuǎn)后重新對其著色。對圖形不停地進行渲染。3.3關(guān)鍵問題解決思路3.3.1三維魔方的描述問題的解決方法定義了一個Block類,用來表示一個小的六面體,以及它所在的位置的世界坐標,和給它的每個面著色。包括旋轉(zhuǎn)某個面后,被旋轉(zhuǎn)小塊的重新著色的實現(xiàn)。3.3.2魔方整體旋轉(zhuǎn)問題的解決方法通過鼠標點擊拖動,控制魔方的整體旋轉(zhuǎn)。定義了一個鼠標監(jiān)聽函數(shù),鼠標移動

5、后,坐標的改變將引起視圖顯示的角度的變化,然后視覺上給人以不同的效果。3.3.3魔方每一層旋轉(zhuǎn)和打亂問題的解決方法每一層的旋轉(zhuǎn),定義了一個旋轉(zhuǎn)函數(shù),每次指定旋轉(zhuǎn)層,根據(jù)其中心塊的表面顏色,來執(zhí)行旋轉(zhuǎn)函數(shù)。旋轉(zhuǎn)函數(shù)通過改變塊的顏色,視覺上給人以旋轉(zhuǎn)后的效果,即重新對魔方的部分要求被改變的小塊進行著色。打亂魔方則是通過隨機指定旋轉(zhuǎn)面,然后調(diào)用旋轉(zhuǎn)函數(shù)。進行很多次的隨機旋轉(zhuǎn)后就會顯現(xiàn)打亂后的魔方。系統(tǒng)設(shè)計214.1系統(tǒng)總體結(jié)構(gòu)、模塊或流程圖一:系統(tǒng)的總體結(jié)構(gòu)根據(jù)禮品魔方的功能,主要分三個模塊,三維魔方的顯示,魔方的整體翻轉(zhuǎn),還有魔方的各層的旋轉(zhuǎn)

6、。4.2顯示三維圖形子模塊的設(shè)計圖二:顯示三維圖形三維圖形的繪制是通過DirectX中的device設(shè)備實現(xiàn)的,通過攝像機,將世界坐標系中的圖形轉(zhuǎn)換到視圖矩陣,然后采用PositionColored形式來定義頂點格式結(jié)構(gòu)214.3魔方的整體翻轉(zhuǎn)子模塊的設(shè)計圖三:魔方的整體翻轉(zhuǎn)魔方的整體翻轉(zhuǎn):是通過鼠標監(jiān)聽函數(shù)接受鼠標輸入來改變?nèi)S圖形的顯示角度,控制矩陣的偏移。4.4魔方的各層旋轉(zhuǎn)子模塊的設(shè)計圖四:魔方各層旋轉(zhuǎn)結(jié)構(gòu)圖魔方各層的旋轉(zhuǎn):是通過記錄改變各個小塊的面的顏色情況來實現(xiàn)旋轉(zhuǎn)的。4.5魔方的打亂魔方的打亂只是多次隨機調(diào)用魔方的層旋轉(zhuǎn)函數(shù)

7、。系統(tǒng)實現(xiàn)在主菜單上選擇“項目——添加引用”,然后在.NET中添加Microsoft.DirectX.Microsoft.DirectX.Direct3D和Microsoft.DirectX.Direct3DX,如下圖所示:21打開窗體和類的代碼,為其添加DirectX引用,如下:usingMicrosoft.DirectX;usingMicrosoft.DirectX.Direct3D;publicpartialclassCubeUI:Form{//定義全局變量publicstaticMicrosoft.DirectX.Direct3D

8、.Devicedevice=null;//定義繪圖設(shè)備privatestaticMicrosoft.DirectX.DirectInput.Devicemouse;//定義鼠標設(shè)備privat

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。