📄 csdn_文档中心_alpha 闪烁效果.htm
字号:
return S_OK;
}
</PRE>
<P><B><FONT face=arial>FrameMove</FONT> </B>
<P><B><FONT face=arial>App_FrameMove</FONT></B> 函数使用 <B><FONT
face=arial>UpdateSparkles</B></FONT> 对粒子系统模拟进行更新。</P><PRE class=clsCode>HRESULT App_FrameMove( LPDIRECT3DDEVICE7 pd3dDevice, FLOAT fTimeKey )
{
// 好,现在可以使用闪烁效果了
UpdateSparkles();
return S_OK;
}
</PRE>
<P><B>着色 </B>
<P><B><FONT face=arial>App_Render</B></FONT> 函数相当简单。首先,我们使用时间和
<B><FONT face=arial>RandomViewpoint</B></FONT> 随时间的推移对视点进行修改。然后我们让
<B><FONT face=arial>DrawSparkles</B></FONT> 绘制粒子系统。太简单了!</P><PRE class=clsCode>void RandomViewpoint(LPDIRECT3DDEVICE7 pd3dDevice,float tic)
{
float fromX, fromY, fromZ;
fromX = (float)sin(tic*0.59);
fromZ = (float)cos(tic*0.59);
if ( texture <= 9 )
fromY = (float)sin(tic*0.72);
else
fromY = (float)cos(tic*0.72);
from = D3DVECTOR(orbit_size*fromX,
orbit_size*fromY,
orbit_size*fromZ );
D3DUtil_SetViewMatrix( view, from, at, up );
pd3dDevice->SetTransform( D3DTRANSFORMSTATE_VIEW, &view);
}
HRESULT App_Render( LPDIRECT3DDEVICE7 pd3dDevice )
{
static float tic = -rnd() * 10000.0f;
// 清除取景框
pd3dDevice->Clear( 0UL, NULL, D3DCLEAR_TARGET, bckColor, 1.0f, 0L );
// 开始场景
if( FAILED( pd3dDevice->BeginScene() ) )
return S_OK; // Don't return a "fatal" error
// tic 来回移动物品
tic += 0.005f;
// 在随机定位中使用
start_scale = 0.05f + (float)(sin(tic * 0.100) + 1.0f)*0.4f;
world_size = 0.10f + (float)(cos(tic * 0.072) + 1.0f)*10.0f;
// 修改取景框
RandomViewpoint(pd3dDevice,tic);
// 绘制闪烁效果
if (!DrawSparkles(pd3dDevice, from, at))
return E_FAIL;
// 结束场景
pd3dDevice->EndScene();
return S_OK;
}
</PRE>
<P><B><FONT face=arial>DeleteDeviceObjects </FONT></B>
<P><B><FONT face=arial>App_DeleteDeviceObjects</B></FONT><I>
</I>函数使纹理列表中的纹理失效。</P><PRE class=clsCode>VOID App_DeleteDeviceObjects( HWND hWnd, LPDIRECT3DDEVICE7 pd3dDevice)
{
D3DTextr_InvalidateAllTextures();
}
</PRE>
<P><B><FONT face=arial>RestoreSurfaces<</FONT> </B>
<P>对于 MSDNSparkles 示例,<B><FONT
face=arial>App_RestoreSurfaces</B></FONT> 为空操作。</P><PRE class=clsCode>HRESULT App_RestoreSurfaces()
{
return S_OK;
}
</PRE>
<P><B><FONT face=arial>FinalCleanup</FONT> </B>
<P><B><FONT face=arial>App_FinalCleanup</B></FONT>
函数删除闪烁效果列表所使用的内存。</P><PRE class=clsCode>HRESULT App_FinalCleanup()
{
free(sparkle);
return S_OK;
}
</PRE>
<P>MSDNSparkles 的实现过程到此结束。当您构建这个项目时,可以通过用鼠标右键单击 MSDNSparkles.scr
文件,对产生的屏幕保护程序进行测试、配置和安装。图 6 对此进行了说明。结果是基本的,但也不无快意。</P>
<P><A
href="http://www.microsoft.com/china/msdn/images/directx0900-8.gif"
target=_blank>单击可查看较大的图像 (14.8 KB)</P><IMG alt=显示“右键单击”菜单的屏幕快照
border=0 height=280
src="CSDN_文档中心_Alpha 闪烁效果.files/directx0900-8a.gif" width=400></A>
<P><B>图 8. 单击右键可对屏幕保护程序进行测试、配置和安装</B></P>
<P><B><FONT class=105v><FONT face=宋体 size=3>结语</FONT></B></FONT>
<P>欢迎您反馈意见。欢迎通过下面的地址给我写信,请附上您的意见、问题、对专题的看法,或是您自己关于本专栏所涉及专题的观点变化的链接。尽管如此,请不要期待个别回信或向我发送需求技术支持的问题。请记住,Microsoft
保持着一个活跃的邮件列表 <B><FONT
face=arial>DirectXDev</B></FONT>,它是一个志趣相投的开发人员共享信息的论坛。可以在 <A
href="http://discuss.microsoft.com/archives/DIRECTXDEV.html">http://DISCUSS.MICROSOFT.COM/archives/DIRECTXDEV.html</A>(英文)找到相应的
Web 界面。提问前请阅读 <A
href="http://msdn.microsoft.com/library/default.asp%20URL=/library/techart/dxfaq2.htm">http://msdn.microsoft.com/library/default.asp%20URL=/library/techart/dxfaq2.htm</A>(英文)上的常见问题解答。</P>
<P> </P>
<HR noShade SIZE=1>
<P class=clsMagFooter>经过过去四年对 DirectX 的宣传,<B><FONT face=arial>Philip
Taylor </B></FONT>一直在不断前进,他现在是 DirectX SDK 的 PM(项目经理)。自从 DirectX 1
的第一个公共 beta 版,实际上应该是很久以前交货的 DirectX 2 游戏以来,他一直致力于 DirectX
的工作。在业余时间里,他隐身于许多三维图形编程邮件列表中。可以通过 <A
href="mailto:msdn@microsoft.com">msdn@microsoft.com</A> 与他联系。</P>
<P><B>归档的 <FONT face=arial>Driving DirectX</FONT> 专栏文章</B> <!-- START directx.inc -->
<TABLE border=0 cellPadding=0 cellSpacing=0 class=clsCatItems>
<TBODY>
<TR>
<TH colSpan=2></TH>
<TH align=left class=clsStoryTD><FONT class=90v><FONT
class=90v face=宋体 size=2>2000 年</FONT></FONT></TH></TR>
<TR vAlign=top>
<TD align=right class=clsPubdate width=100><FONT
class=90v><FONT class=90v face=宋体
size=2>8月22日</FONT></FONT></TD>
<TD width=10> </TD>
<TD class=clsStoryTD><A
href="http://msdn.microsoft.com/library/default.asp%20URL=/library/welcome/dsmsdn/directx08212000.htm"><FONT
class=90v><FONT face=宋体 size=2>现在您看到了,现在您还没有看到:Alpha 混色,第 2
部分</FONT></A><FONT face=宋体 size=2>(英文)</FONT></FONT></TD></TR>
<TR vAlign=top>
<TD align=right class=clsPubdate width=100><FONT class=90v
face=宋体 size=2>7月26日</FONT></TD>
<TD width=10> </TD>
<TD class=clsStoryTD><A
href="http://msdn.microsoft.com/library/default.asp%20URL=/library/welcome/dsmsdn/directx07242000.htm"><FONT
class=90v><FONT face=宋体 size=2>现在您看到了,现在您还没有看到:Alpha 混色,第 1
部分</FONT></A><FONT face=宋体 size=2>(英文)</FONT></FONT></TD></TR>
<TR vAlign=top>
<TD align=right class=clsPubdate width=100><FONT class=90v
face=宋体 size=2>6月22日</FONT></TD>
<TD width=10> </TD>
<TD class=clsStoryTD><A
href="http://msdn.microsoft.com/library/default.asp? URL=/library/welcome/dsmsdn/directx06192000.htm"><FONT
class=90v><FONT class=90v><FONT face=宋体
size=2>您能得到怎样的光亮?</FONT></A><FONT face=宋体
size=2>(英文)</FONT></FONT></FONT></TD></TR>
<TR vAlign=top>
<TD align=right class=clsPubdate width=100><FONT class=90v
face=宋体 size=2>5月15日</FONT></TD>
<TD width=10> </TD>
<TD class=clsStoryTD><A
href="http://msdn.microsoft.com/library/default.asp%20URL=/library/welcome/dsmsdn/directx05152000.htm"><FONT
class=90v><FONT face=宋体 size=2>D3DFrame
入门(英文)</FONT></A></FONT></TD></TR>
<TR vAlign=top>
<TD align=right class=clsPubdate width=100><FONT class=90v
face=宋体 size=2>4月17日</FONT></TD>
<TD width=10> </TD>
<TD class=clsStoryTD><A
href="http://msdn.microsoft.com/library/default.asp%20URL=/library/welcome/dsmsdn/directx04172000.htm"><FONT
class=90v><FONT face=宋体 size=2>对 DirectX 的一点主张</FONT></A><FONT
face=宋体 size=2>(英文)</FONT></FONT></TD></TR></TBODY></TABLE><!-- STOP directx.inc -->
<P class=clsMagFooter>照片的商誉权属于:Sean Masterton/Microsoft Corporation
</P>
<P
class=clsMagFooter> </P></FONT><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>对该文的评论</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文档中心_Alpha 闪烁效果.files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<SCRIPT language=javascript>
<!--
function isEmpty(s)
{
return ((s == null) || (s.length == 0))
}
function fubmitok()
{
if (isEmpty(document.add_critique.Critique_Content.value))
{
alert('评论不能为空!!!!') ;
return false;
}
document.add_critique.submit();
}
//-->
</SCRIPT>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>
<FORM action=Critique_Sql.asp method=post name=add_critique><INPUT
name=Critique_State type=hidden value=add> 评论人:xyj0323
评论:<BR> <TEXTAREA cols=104 name=Critique_Content rows=8></TEXTAREA><BR> <INPUT name=ubmit onclick=javascript:fubmitok(); type=button value=发表评论>
<INPUT name=Topic_id type=hidden value=1866> <INPUT name=From type=hidden
value=/Develop/Build_Article.asp?id=1866>
</FORM></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A
href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A
href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文档中心_Alpha 闪烁效果.files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -