很多D3D的初学者最感到困惑的问题是如何用D3D来实现2D的效果,因为DirectDraw已经不存在了(当然你还是可以用以前的版本的,但是可能不法利用一些最近的硬件加速)在这里我给大家介绍几种方法可以实现用D3D编写2D游戏
方法一:
使用D3DX的接口ID3DXSprite,
void DrawSprite_2D(
int dx,//窗口中的X座标
int dy,//窗口中的Y座标
int sx,//tex纹理中的X座标
int sy,//tex纹理中的Y座标
int sw,//tex纹理中的子区域宽度
int sh,//tex纹理中的子区域高度
IDirect3DDevice9* device,
ID3DXSprite* sprite,
IDirect3DTexture9* tex,//已生成的纹理
bool trans )
{
D3DXCOLOR c = D3DCOLOR_XRGB(255,255,255);
D3DXMATRIX identity;
D3DXMatrixIdentity( &identity );
RECT r;
r.left = sx;
r.top = sy;
r.right = sx+sw;
r.bottom = sy+sh;
device->SetTransform( D3DTS_WORLD,&identity );
device->SetTransform( D3DTS_VIEW,&identity );
if( trans )
{
sprite->Begin( D3DXSPRITE_