本来想写信向瓮云兵前辈请教这些问题的,也许他太忙,写了信一直不见回复,就拿到这里向大家请教来了。下面是我的几个问题。 关于粒子系统部分的问题: 问题1: laser系统部分看不到效果,我认为是给出的代码没有往系统中添加任何粒子.因此我加了下面的语句,这样按住空格键就能开枪了. // fire!!!!!!!!!!!!!!!! // if( ::GetAsyncKeyState(VK_SPACE) & 0x8000f ) Gun->addParticle(); 问题2: 火花系统部分重写了preRender()函数,用下面的函数改变了混合因素. _device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE); _device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE); 这样就可以达到去掉 flare.bmp 图片背景色(当然这里只能是黑色)的效果(即只显示圆形的火花).不知道我理解的对吗? 如果是我这样理解的话,为什么雪花系统部分没有象火花系统一样重写preRender函数呢?最后要显示圆形的雪花的话,不也要去掉snow.bmp图片的背景色吗? 我试着重写了一下preRender,结果雪花变成了白色的正方型,实在是不理解,望赐教. 问题3:关于粒子最后显示在屏幕上颜色的计算问题: 我的理解是这样的:先利用属性表里粒子的颜色和纹理颜色进行计算,(但是在preRender函数当中并没有设置相应的计算方法,难道是用默认的计算方法吗?)然后将结果与后缓冲区的颜色(也就是整个基本场景)混合.这样理解对吗?不对的地方,请指教. |