下載完整游戲內(nèi)核包
創(chuàng)建游戲內(nèi)核(25)【完】 摘要:
本篇是創(chuàng)建游戲內(nèi)核(24)的續(xù)篇,涉及到的DirectPlay基礎知識請參閱使用DirectPlay進行網(wǎng)絡互聯(lián)(4)。
可以使用NETWORK_CLIENT類來處理網(wǎng)絡的客戶端對象,它的使用方法同NETWORK_SERVER對象的使用方法相似,但有一點不同,那就是連接到網(wǎng)絡的方法,必須使用NETWORK_CLIENT::connect來建立與服務器端的連接。
創(chuàng)建游戲內(nèi)核(24) 摘要:
本篇是創(chuàng)建游戲內(nèi)核(23)的續(xù)篇,涉及到的DirectPlay基礎知識請參閱使用DirectPlay進行網(wǎng)絡互聯(lián)(2),使用DirectPlay進行網(wǎng)絡互聯(lián)(3)。
可以使用類NETWORK_SERVER來處理網(wǎng)絡服務器端,這個類用于初始化DirectPlay服務器對象,主持游戲會話,處理收到和要發(fā)送的網(wǎng)絡消息。
創(chuàng)建游戲內(nèi)核(23) 摘要:
網(wǎng)絡內(nèi)核包括三個類:NETWORK_ADAPTER,NETWORK_SERVER,NETWORK_CLIENT。
NETWORK_ADAPTER類用于枚舉系統(tǒng)上安裝了的TCP/IP設備。為了同客戶端建立連接,必須知道設備的GUID,這正是NETWORK_ADAPTER類的用途。
創(chuàng)建游戲內(nèi)核(22) 摘要:
本篇是創(chuàng)建游戲內(nèi)核(21)的續(xù)篇,有關DirectAudio和DirectShow的基礎知識請參閱用DirectX
Audio和DirectShow播放聲音和音樂。
在MP3類中,可以初始化并關閉DirectShow,渲染媒體文件以及控制歌曲的回放(開始播放、停止播放以及暫停播放)。
創(chuàng)建游戲內(nèi)核(21) 摘要:
本篇是創(chuàng)建游戲內(nèi)核(20)的續(xù)篇,有關DirectAudio和DirectShow的基礎知識請參閱用DirectX
Audio和DirectShow播放聲音和音樂。
為了增強MUSIC_CHANNEL類的音樂回放特性,可以使用DLS類。
創(chuàng)建游戲內(nèi)核(20) 摘要:
本篇是創(chuàng)建游戲內(nèi)核(19)的續(xù)篇,有關DirectAudio和DirectShow的基礎知識請參閱用DirectX
Audio和DirectShow播放聲音和音樂。
沒有了音樂,游戲將變得毫無樂趣,可以通過使用類MUSIC_CHANNEL來播放.MID和DirectMusic本地歌曲(.SGT)。
創(chuàng)建游戲內(nèi)核(19) 摘要:
前面介紹了如何初始化聲音系統(tǒng)以及如何加載聲音數(shù)據(jù),很自然地,接下來就要講述如何播放聲音了,這也正是SOUND_CHANNEL類的用途所在。
創(chuàng)建游戲內(nèi)核(18) 摘要:
SOUND對象控制DirectSound和DirectMusic對象,控制回放聲音時的音量(全局音量控制),也觸發(fā)音頻流相關消息。
創(chuàng)建游戲內(nèi)核(17) 摘要: 聲音內(nèi)核為快速和容易地將聲音和音樂加入到游戲中提供了一種解決方案,聲音內(nèi)核包含6個類組件。
創(chuàng)建游戲內(nèi)核(16) 摘要:
通過鍵盤、鼠標和游戲桿,輸入內(nèi)核提供了一種手段,使玩家能夠同游戲進行交互。使用兩個簡單的類:INPUT和INPUT_DEVICE產(chǎn)生輸入設備。
INPUT類用來初始化DirectInput,而INPUT_DEVICE類用來包含一個DirectInput設備接口對象。如果要使用多個設備,需要對每個設備使用單獨的INPUT_DEVICE對象。
創(chuàng)建游戲內(nèi)核(15) 摘要:
ANIMATION類是網(wǎng)格動畫組件,也是圖形內(nèi)核的最后一個類。使用ANIMATION,就能夠從.X文件加載一連串動畫集,把它同OBJECT結合起來創(chuàng)建網(wǎng)格動畫。ANIMATION類很小,類似于MESH,它也有一些用于保存動畫數(shù)據(jù)鏈表的結構體。
創(chuàng)建游戲內(nèi)核(14) 摘要:
三維動畫與二維動畫相比較是一個全新的處理過程。不用再奢侈地繪制圖像,然后按順序顯示來創(chuàng)建動畫。在三維世界中,一個對象可以從任何方向進行觀察。
基本上,三維動畫改變那些在運行期間用于為網(wǎng)格模型指明方向的框架變換矩陣,進而產(chǎn)生出在框架中移動的各式各樣的網(wǎng)格模型,這個運動的網(wǎng)格模型就是動畫。可以使用任何方式平移、旋轉、甚至縮放網(wǎng)格模型。
在處理蒙皮網(wǎng)格模型時,框架變換的使用只不過是使網(wǎng)格模型產(chǎn)生動畫的一種方法。因為一個蒙皮網(wǎng)格模型就是一個單一的網(wǎng)格模型(并非由多個網(wǎng)格模型組成),需要改變框架比便進行頂點的變形。修改框架變換矩陣最簡單的方法就是使用一種稱之為關鍵楨(key
frame)的技術。
創(chuàng)建游戲內(nèi)核(13) 摘要:
創(chuàng)建MESH類的目的是為了幫助程序員將那些小守護程序(demon)加載到一連串易于使用的類中,然后同其他將網(wǎng)格渲染到顯示器上的對象結合起來使用。
創(chuàng)建游戲內(nèi)核(12) 摘要:
雖然ID3DXFont對象處理起來比較容易,但是設置字體卻讓人痛苦不堪。不要緊,使用FONT類就能快速并容易地得到字體。
創(chuàng)建游戲內(nèi)核(11) 摘要:
頂點是一個麻煩的東西,有時對它束手無策,通過提供一種快速創(chuàng)建、設置以及渲染頂點集合的方法,VERTEX_BUFFER類能夠減少此煩惱。
創(chuàng)建游戲內(nèi)核(10) 摘要:
GRAPHICS用于設置顯示模式和渲染狀態(tài)以及清除設備等,一旦初始化了GRAPHICS對象,就能夠同幾乎所有圖形內(nèi)核的類組件結合起來使用。
創(chuàng)建游戲內(nèi)核(9) 摘要:
紋理使3D看起來更貨真價實,使用全彩色成像可以使簡單的多邊形顯得逼真,嘗試保存一個紋理列表是一個不錯的選擇,但有了TEXTURE的幫助,就能使問題變得更容易。
創(chuàng)建游戲內(nèi)核(8) 摘要:
光照同材質(zhì)一樣簡單,使用光照可以通過很多方式實現(xiàn)很多效果,基于這個原因,這里將所有同光照有關的一切東西都匯總到一個名為LIGHT的類中。
要在光源中使用光照,只需要實例化LIGHT類,然后挑選一種光源類型并設置光源的顏色,將光源置于任何適當?shù)奈恢茫⒃O置光源的發(fā)射方向。
創(chuàng)建游戲內(nèi)核(7) 摘要:
通過改變繪制表面的顏色值,就可以改變渲染對象的外觀,MATERIAL類可以使改變材質(zhì)顏色值變得更容易一些。
創(chuàng)建游戲內(nèi)核(6) 摘要: CAMERA類和WORLD_POSITION類非常類似,但CAMERA類處理的是視口變換矩陣。
創(chuàng)建游戲內(nèi)核(5) 摘要: 圖形內(nèi)核是游戲內(nèi)核最主要的部分,也是最大和最復雜的內(nèi)核對象,下表列出了圖形內(nèi)核中的類:
其中GRPHICS對象是所有圖形內(nèi)核對象的基礎。
雖然處理世界變換矩陣并不難,但是用一個類來處理諸如世界坐標、旋轉值以及縮放因子等所有細節(jié),就更簡單明了。另外,這個類中還加入了公告板技術。
創(chuàng)建游戲內(nèi)核(4) 摘要: 加入了兩個函數(shù),分別用于返回數(shù)據(jù)緩沖區(qū)的大小和指向緩沖區(qū)的指針。
創(chuàng)建游戲內(nèi)核(3) 摘要:
棧上的每個函數(shù)在每幀都要被調(diào)用,除了這點小的不同之處,PROCESS_MANAGER和STATE_MANAGER非常相似。
創(chuàng)建游戲內(nèi)核(2) 摘要:
新的狀態(tài)管理器引入了兩個概念:調(diào)用目的以及添加一個用戶自定義的數(shù)據(jù)指針,此指針指向STATE_MANAGER中的函數(shù)。調(diào)用目的是一個狀態(tài)被調(diào)用的原因,“目的(purpose)”可以是INIT_PURPOSE(表明要使用函數(shù),需要事先進行準備)、FRAME_PURPOSE(處理單獨的一幀)或SHUTDOWN_PURPOSE(在處理完成時釋放所有資源)。
創(chuàng)建游戲內(nèi)核(1) 摘要:
寫程序時,處理重復(或尋常)代碼的技巧就是創(chuàng)建一個有用的函數(shù)構成的核心庫,由這個核心庫來處理重復的代碼。使用這個函數(shù)庫,就無需反復書寫相同的DirectX或Windows代碼,因而能夠幫助程序員快速創(chuàng)建游戲工程。
游戲內(nèi)核(game
core)是用來簡化DirectX和Windows編程的一些庫的集合。游戲內(nèi)核中幾乎含有一個游戲工程需要使用的所有函數(shù),這些函數(shù)一般用于繪制圖形、播放聲音、處理用戶輸入以及應用程序。也就是說,使用游戲內(nèi)核,就無需在每次開始一個新的游戲工程時,再去處理底層的DirectX或Windows
代碼。