Directx10 龙书笔记- 第7章课后题 实现火焰动画
2014-09-22 00:20
232 查看
火焰的图片我是没找到,找到了几张雷电的,就在d3dcoder.net 的directx10那本书代码下载的Bolt Animations for Chapter 9 里面
里面很多张图片,由于c++也是初学,一时来不及弄字符串拼接的函数。 只能定义很多个帧bmp 然后一个一个载入了
具体代码是建立在那个"crate" 例子工程, 就是那个木箱子的代码基础上。
添加的代码如下:
然后开始从文件载入
如果你知道如果将BoltAnim/Bolt00+i+.bmp这种拼接成函数的参数请告诉我,因为这样就可以调用那几十张图片了,没必要我这样麻烦的复制9次。
当所有东西存好在mDiffusePic里面过后,就是开始绘制了。
最开始那个木箱盒子是绘制的固定的一个纹理贴图 mDiffuseMapRV
这里我们改用刚定义的mDiffusePic. 而且是在drawScene函数里面 每隔一定的时间换一张图片
这样快速的就形成了帧动画了。
主要就是以上这个函数了。
由于是我的读书笔记,所以没有全部工程的源码给出。只是方便同在学习这本书的童鞋查缺补漏。 以上都是核心的需要注意的代码了。
里面很多张图片,由于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]); }
主要就是以上这个函数了。
由于是我的读书笔记,所以没有全部工程的源码给出。只是方便同在学习这本书的童鞋查缺补漏。 以上都是核心的需要注意的代码了。
相关文章推荐
- Directx10 龙书笔记- 雾效的实现
- Android游戏开发学习笔记(一):tweened animation自定义动画的实现
- [原]【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现
- cocos2d-x -------之笔记篇 动画的实现
- 【Stage3D学习笔记续】山寨Starling(六):动画实现和测试
- D3D学习笔记之六---简单的动画实现。
- 【Visual C++】游戏编程学习笔记之四:透明动画实现
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
- Android基础笔记——动画(补间动画:Tween xml实现)
- 【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现
- 【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现
- 【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
- 【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现
- 【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现
- 【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现
- 游戏开发笔记之十 基础动画显示(三) 透明动画的实现
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
- android基础笔记——补间动画(Tween)代码实现