四年前写过一篇《 》得到了很多的反馈,现在那篇文章中的好多代码已经不可以再用了,所以对其中的一些代码做了改动,为了方便 初学者掌握3DXSpriet,再写一篇关于dx9.0c 环境下的3DXSpriet文章,时间比较仓促,估计里面有一些Dx9b的没有修改过来,错误之处敬请谅解,在这里权作抛砖引玉,希望大家参与讨论!
A. 什么是ID 3DXSpriet
我们有了创建win窗口的基础下来我们谈谈 2D 游戏中最关键的函数 3DSprite ,通过对函数的运用,你会马上发现这是一个多么简单易用的 2D 绘图函数。还是老办法,在你的 Microsoft DirectX 9.0_c SDK 环境里运行以下下列代码(以下代码来自 )。
找一张图片(或者自己找一个不要小于200*200像素的图片文件)考到你的程序目录下作为纹理的加载。
B. 怎么运用3DXSpriet 绘制图像
开始 3DSprite 的语法学习,本小节本手册的重点内内容,但并非难点,希望认真学习。
从函数的名字可以看出,这是一个 D3D 的函数,有很多人很迷惑,我们用 D3D 的方法来实现 2D 效果,不是大材小用,浪费资源吗?所以有很多人重操旧业,用DirectX 7.0 里面的DirectDraw来实现2D效果,认为这样绘制出来的2D效果速度快资源占用率低。在这里我也只想说 3DSprite 在资源上的确浪费了,当然理论上速度也要比DirectDraw慢。但是它支持硬件加速,所以在实际上它比DirectDraw快了而不是慢了。如果你有兴趣或者有自己的看法,可以到 里来讨论。
本函数在用的时候要注意,它的格式:
3DSprite要绘制图像,那么就必须加载图片,我们用莱加载的图片的方法是利用D3D中加在纹理的方法,因此,我们的还必须学习一些D3D的一些知识,如果你看过 的话,那就没有多大问题了。如果没有,希望你还是看看相关书籍。那么跟着我来看看《快乐西游》中的一些代码(上一节那个完整程序中也可以查看相关内容)。
运行2D代码,加载一个头文件 d3dX9.h 就可以了,对于初学者而言,为了让自己的代码
能够编译成功,总是加载很多的头文件,这是一个很不好的习惯。
前三个变量声明是为了建立D3D设备加载图片纹理的,在我们使用g_pSprite->Draw()之前,我们必须定义一个ID3DXSprite*变量
LPD3DXSPRITE g_pSprite = NULL; //SPRITE对象
接下来我们要在创建D3D设备(假如是g_pd3dDevice)之后, 用D3DXCreateSprite创建Sprite:


发布评论