火焰的图片我是没找到,找到了几张雷电的,就在d3dcoder.net 的directx10那本书代码下载的Bolt Animations for Chapter 9 里面
里面很多张图片,由于c++也是初学,一时来不及弄字符串拼接的函数。 只能定义很多个帧bmp 然后一个一个载入了
具体代码是建立在那个"crate" 例子工程, 就是那个木箱子的代码基础上。
添加的代码如下:
ID3D10ShaderResourceView* mDiffusePic[9];
我定义了一个能装9张图片的shaderview
然后开始从文件载入
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt001.bmp", 0, 0, &mDiffusePic[0], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt002.bmp", 0, 0, &mDiffusePic[1], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt003.bmp", 0, 0, &mDiffusePic[2], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt004.bmp", 0, 0, &mDiffusePic[3], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt005.bmp", 0, 0, &mDiffusePic[4], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt006.bmp", 0, 0, &mDiffusePic[5], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt007.bmp", 0, 0, &mDiffusePic[6], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt008.bmp", 0, 0, &mDiffusePic[7], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt009.bmp", 0, 0, &mDiffusePic[8], 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"BoltAnim/Bolt001.bmp", 0, 0, &mDiffuseMapRV, 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"WoodCrate01.dds", 0, 0, &mDiffuseMapRV1, 0 ));
HR(D3DX10CreateShaderResourceViewFromFile(md3dDevice,
L"defaultspec.dds", 0, 0, &mSpecMapRV, 0 ));
如果你知道如果将BoltAnim/Bolt00+i+.bmp这种拼接成函数的参数请告诉我,因为这样就可以调用那几十张图片了,没必要我这样麻烦的复制9次。
当所有东西存好在mDiffusePic里面过后,就是开始绘制了。
最开始那个木箱盒子是绘制的固定的一个纹理贴图 mDiffuseMapRV
这里我们改用刚定义的mDiffusePic. 而且是在drawScene函数里面 每隔一定的时间换一张图片
这样快速的就形成了帧动画了。
// Every quarter second, generate a random wave.
static float t_base = 0.0f;
static int flag=0;
if( (mTimer.getGameTime() - t_base) >= 0.15f )
{
t_base += 0.15f;
mfxDiffuseMapVar->SetResource(mDiffusePic[(flag++)%9]);
}
主要就是以上这个函数了。
由于是我的读书笔记,所以没有全部工程的源码给出。只是方便同在学习这本书的童鞋查缺补漏。 以上都是核心的需要注意的代码了。
分享到:
相关推荐
Introduction to 3D Game Programming with DirectX 11-12,龙书11,龙书12,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除。
第二章部分习题答案 2.1 考虑文法 S→ S S + | S S * | a 证明文法可生成符号串 a a + a * 解:S→ S S * → S S + S * →a S + S * → a a + S *→ a a + a * 为此符号串构造语法树 解: 文法生成什么样的语言?...
Introduction to 3D Game Programming with DirectX 9.0c —— A Shader Approach第7章习题3的答案,只给了源码,使用方式参见ReadMe.txt文件。
这个是龙书的pdf中文翻译资料,个人觉得还可以,内容是照照着英文版的,简洁明了
编译原理经典著作之龙书,第四章答案。word格式,值得下载。
DirectX 9.0 3D 游戏开发编程基础 SourceCode,龙书光盘里的源代码
编译原理部分习题答案,龙书第二版,1-8章都有
编译原理三本书之一 不用多做介绍吧 既然你搜了这个名字
编译原理最好的教材 程序员都应该看看 特别是对编译器有兴趣的
编译原理(龙书)答案第三章[归纳].pdf
Introduction to 3D Game Programming with DirectX 9.0c —— A Shader Approach第4章习题4的答案,只给了源码,使用方式参见ReadMed.txt文件。
Introduction to 3D Game Programming with DirectX 9.0c —— A Shader Approach第7章习题1的答案,只给了源码,使用方式参见ReadMe.txt文件。
directX9.0 龙书 Introduction_To_3D_Game_Programming_With_DirectX_9.0 值得拥有
龙书-编译原理 清晰 pdf 龙书-编译原理(高清龙书中文版)龙书-编译原理(高清龙书中文版)龙书-编译原理(高清龙书中文版)
编译原理 也称龙书 习题答案 答案很详细
Introduction to 3D Game Programming with DirectX 9 0c A Shader Approach第7章习题4的答案 只给了源码 使用方式参见ReadMe txt文件
手录学习代码,改了换行符判断,windows能运行。龙书附录完整编译器前端完整代码, 完整代码在我的github上面也有
directx龙书/DX93D游戏程序设计入门 包括原版和中文版
Introduction to 3D Game Programming with DirectX 9 0c A Shader Approach第8章习题3 5的答案 只给了源码 使用方式参见ReadMe txt文件