1用directdraw
這是早期的做法,由於現在的
directdraw
已經併入到
directgraphic
當中,而且微軟也已經在
direct sdk8
中把directdraw
部分的文件取消了,現在多用
d3d來做
2d的遊戲
2用id3dxsprite
這個介面可以很好的製作
2d動畫,
id3dxsprite
是driectx 9.0
裡面的乙個簡單模組,在
driectx 9.0
幫助文件裡面對其功能的描術為:
「向使用者提供一套簡單的在螢幕上實現精靈渲染的介面。
」何為精靈渲染,說白了就是渲染2d畫面,
id3dxsprite
幫助使用者通過簡單的操作就能運用
driectx 9.0
製作2d遊戲(渲染2d圖形)。對於繪製
2d,其主要步驟就是
(1)讀取,載入紋理
(2)如果需要對做旋轉或者縮放的話,設定相應的矩陣
(3)id3dxsprite::draw(….)
具體參考**如下:
//初始化精靈對像
d3dxcreatesprite(g_pdevice, &g_psprite);
g_pdevice->beginscene();
g_pdevice->clear(0,null,d3dclear_target|d3dclear_zbuffer|d3dclear_stencil,
d3dcolor_xrgb(0,0,0),1.0f,0l);
g_psprite->begin(d3dxsprite_alphablend);
//得到2d座標轉換矩陣
d3dxmatrixtransformation2d(&mat, null, 0.0f, &d3dxvector2(0.1f, 0.1f),
&d3dxvector2(50.0f, 50.0f), 0.5f, &d3dxvector2(100.0f, 100.0f));
g_psprite->settransform(&mat);
//渲染精靈
g_psprite->draw(g_ptexsprite, null, null, null, 0x99ffffff);
g_psprite->end();
g_pdevice->endscene();
g_pdevice->present(null, null, null, null);
另:id3dxsprite::draw ()
方法9.0c
以上版本為
5個引數.,
9.0b
版本為7
個引數。
3設定頂點格式為d3dfvf_ xyzrhw
direct3d
提供了一種座標格式
d3dfvf_xyzrhw
,用於變換後的座標空間。它有
4個分量x、
y、z、
rhw,其中x、
y使用視窗座標,z、
rhw代表深度。只要把z、
rhw設定成常數(通常z取
0,rhw取
1),就可以用它來定義二維圖形的頂點。在使用這種座標格式繪製二維圖形時,建議用頂點顏色或紋理進行渲染,不要使用光照和材質,而且要禁用
z快取,此時後繪製的圖形將覆蓋在最上面。
下面來演示如何顯示乙個二維的紅色三角形
,使用頂點顏色渲染,圖元格式選三角形列
//紅色三角形的
fvf格式:
rhw座標、頂點顏色
struct customvertex3
;#define d3dfvf_customvertex3 (d3dfvf_xyzrhw | d3dfvf_diffuse)
lpdirect3dvertexbuffer9 m_pvb3;//
紅色三角形的頂點快取區介面指標
//建立紅色三角形
customvertex3 vertices3[3] = //
頂點為紅色
, ,
};
//建立紅色三角形的頂點快取區,填入頂點資料(博文長度有限制,此處**略)
.....
//渲染
紅色三角形
m_pdevice->setfvf( d3dfvf_customvertex3 );
m_pdevice->setstreamsource( 0, m_pvb3, 0, sizeof(customvertex3) );
m_pdevice->drawprimitive( d3dpt_********list, 0, 1 );
.....
2D遊戲開發(2)
每次給遊戲新增新功能時,通常也會引入一些新設定。為了讓所有的設定進行統一管理,我們可以配置乙個名為 setting的模組,這個模組中包含乙個setting的類,用來儲存所有的設定。usr bin env python3.5 filename setting 儲存所有的設定 class setting...
2D遊戲vs3D遊戲
前幾天,小李子一直在糾纏3d,偽3d遊戲等。雖說小李子效力於大公司,但是該公司畢竟不是專業的遊戲公司。美工xx等一概不全,要使用個3d引擎做個ipad,android的遊戲。這年頭是怎麼了。遊戲最主要的是什麼?是畫面?還是互動的畫面?還是互動的立體畫面?接觸過這麼多遊戲,還沒有見過只以最精緻的畫面獲...
2D遊戲vs3D遊戲
前幾天,小李子一直在糾纏3d,偽3d遊戲等。雖說小李子效力於大公司,但是該公司畢竟不是專業的遊戲公司。美工xx等一概不全,要使用個3d引擎做個ipad,android的遊戲。這年頭是怎麼了。遊戲最主要的是什麼?是畫面?還是互動的畫面?還是互動的立體畫面?接觸過這麼多遊戲,還沒有見過只以最精緻的畫面獲...