D3D来实现2D的效果 的方法

本文介绍了使用D3D实现2D效果的四种方法:1) ID3DXSprite接口,2) 平行投影相机OrthoCamera,3) 顶点的RHW,以及4) 射线与平面交点。针对每种方法,文章提供了代码示例,并强调了D3D对纹理大小的限制及其解决方案。
摘要由CSDN通过智能技术生成

很多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_

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值