首先,说明一下,我的博客里的代码均为完整代码,只要环境搭建没有问题,复制代码即可运行
工程文件下载地址:http://download.csdn.net/detail/shangdi712/9052015 使用工程代码时切记配置DirectX 环境
怎么讲呢,突然发现,如果真的只是讲一讲,然后将完整代码贴出来,虽然有注释,但是对于初学者来说,或者是对于日后自己复习,都会产生一些困扰,所以,这次我打算先讲一讲这里面几个函数的用法,我前几篇博客也会做适当修改,以帮助大家和自己日后更好理解(原谅我是博客新手),前面Window窗口讲完了,我就直接写关于D3D的内容了,对于字符集,消息机制并没有写,这样,我之后在这篇博客之后加上这两部分,然后也会对于前面的博客做些修改,但是,如果你不理解Win32,其实只要把我Win32那篇博客里的代码复制下,在里面修改,加入D3D需要的代码即可
好的,我们这次的任务是创建精灵,创建精灵主要分为以下几步:
1.声明一个精灵指针 :精灵创建跟创建D3D窗口一样,也需要一个指针,用于创建精灵
LPD3DXSPRITE g_pSprite = nullptr;
2.创建精灵,这里会用到D3D的一个内置函数D3DXCreateSprite,他需要两个参数,第一个是D3D的设备指针(见前一篇博客),第二个是精灵指针
D3DXCreateSprite(g_pDevice, &g_pSprite);
3.加载纹理,加载纹理的时候我们需要一个纹理指针和和一个用来存储图片信息的变量如下:
LPDIRECT3DTEXTURE9 g_pTexture = nullptr;
D3DXIMAGE_INFO imageInfo;
之后我们开始调用D3D内置的加载纹理的函数,加载纹理的函数有两个,分别如下:
D3DXCreateTextureFromFile(
g_pDevice, //设备指针
TEXT("Resources\\Textures\\carrot.png"), //路径及文件名
&g_pTexture //返回的读取到的纹理的指针
);
D3DXCreateTextureFromFileEx(
g_pDevice, //设备指针
TEXT("Resources\\Textures\\carrot.png"),//路径及文件名
D3DX_FROM_FILE, //图片的宽来自于文件本身
D3DX_FROM_FILE, //图片的高来自于文件本身
0, //多级渐进纹理的等级
0, //图片的作用
D3DFMT_UNKNOWN, //未知纹理格式
D3DPOOL_MANAGED, //受系统管理的存储空间
D3DX_FILTE