自己動手寫遊戲引擎二 D3D遊戲場景

2021-04-07 03:04:23 字數 1853 閱讀 5712

這一節課,我們要做乙個

d3d的開發環境出來,基於

vc++6.0/directx9

我們需要的標頭檔案和庫檔案

d3d9.h

與d3d9.lib

首先,開發之前,我們要了解兩個東西(具體意義,參考

sdk幫助檔案)

idirect3d9* pidirect3d9;//d3d

介面物件

idirect3ddevice9* pidirect3ddevice9;//d3d

裝置我們建立

d3d開發環境的目的,就是要把上面這兩個東西建立出來。

以後的開發中,

pidirect3ddevice9

到處都用得到。

建立d3d

裝置建立的步驟:步驟1

:建立介面物件步驟2

:顯示屬性的設定步驟3

:裝置功能檢測步驟4

:建立d3d

裝置分析:步驟2

顯示屬性的設定,全屏模式和視窗模式有差別,要分別處理步驟3

我們採用

hal硬體抽象層。進行檢測選擇,選擇硬體,軟體渲染的方式步驟2

和步3

為步驟4 d3d

裝置的建立做準備

流程如下:

pidirect3d9=direct3dcreate9(d3d_sdk_version);

d3ddisplaymode d3ddm;

pidirect3d9->getadapterdisplaymode(d3dadapter_default,&d3ddm);

d3dpresent_parameters d3***;

zeromemory(&d3***,sizeof(d3***));

if(bfullscreen)

else

pidirect3d9->getdevicecaps(d3dadapter_default,d3ddevtype_hal,&d3dcaps)

if(d3dcaps.devcaps&

實際功能)

else

if(bhardware)

else

到此,我們需要的兩個東西

d3d介面物件和

d3d裝置就都建立出來了,我們的

d3d場景初始化也完成了

誰都知道,重複的**誰都不喜歡寫,因為那費時又有點無聊,呵呵,為了方便以後我們開發的使用,我們對

d3d的初始化同樣做了封裝,上面的講的所有的功能細節,都有我們的類去完成,你只要呼叫時設定幾個引數,一切就

ok了。

最後,你以後只需要寫下面幾行**,就可以完成

d3d裝置的初始化,並建立出乙個你想要的視窗。

cengineframe engineframe;

如果你想要乙個全屏的視窗,只要把最後一行的

false

改為true

就可以了,細節的東西,就交給我們的類去實現了

是不是很簡單

我們cengineframe類功能很強大的,我們後邊會一步步填加一些功能,去完善它!

效果預覽

呵呵,效果看起來和第一課一樣,但這個視窗已經是

d3d初始化後的視窗了,在這個視窗中,你可以創造出很奇妙的東西,我們慢慢來

,不著急!

今天是週末,快十點了,要休息一下了,過我的私生活……

明天有時間,我們繼續下一課,開始做圖了哦,頂點渲染,到時候你會看到用

d3d做出來的空間圖形!

如果您要使用我寫的東西,我很高興請寫明出處就可以,也尊重一下作者的勞動成果嘛

您願意使用我的引擎**,可以聯絡我,我發給您。

如果您對引擎的修改有建議,通知我,我很高興!

我的郵箱

[email protected]

C 遊戲開發教程 D3D

本文適合有一定程式設計基礎的愛好者!本文不會涉及基本的語法等內容,本文適合所有遊戲開發初學者,本文從microsoft directx 9.0 sdk summer 2004 中的d3d下tutorials資料夾下的例子開始!關鍵字 c 遊戲開發 3d 教程 c 讀作 c sharp 是一種簡單 現...

D3D遊戲開發1之準備

開始,編譯器的正確配置 第一步 安裝directx sdk june 2008 和microsoft visual studio 2005 第二步 設定directx和visual studio 2005關聯 1 開啟visual studio 2005,將d3d需要的lib 檔案目錄在鏈結器中指定...

自己動手寫遊戲 Flappy Bird

是由來自越南的獨立遊戲開發者dong nguyen所開發的作品,遊戲中玩家必須控制乙隻小鳥,跨越由各種不同長度水管所組成的障礙,而這只鳥其實是根本不會飛的 所以玩家每點選一下小鳥就會飛高一點,不點選就會下降,玩家必須控制節奏,拿捏點選螢幕的時間點,讓小鳥能在落下的瞬間跳起來,恰好能夠通過狹窄的水管縫...