我是基于directx7,用delphi写出来的,感觉在自己的电脑运行还很正常。dd56001
//绘制我机撞毁火焰
if(deadflamestatus<>0)then
begin
rect.Left :=deadflamepos.X;
rect.top:=deadflamepos.Y;
rect.Right :=rect.left+66;
rect.Bottom :=rect.top+66;
srect.Left :=(deadflamestatus-1)*66;
srect.top:=0;
srect.Right :=srect.left+66;
srect.Bottom :=srect.top+66;
//绘制火焰
rval:=FDDSBack.Blt(@rect, FDDSDead, @srect, DDBLT_WAIT or DDBLT_KEYSRC , nil);
if(rval = DDERR_SURFACELOST) then
FDDSBack._Restore;
tempint:=gettickcount;
if(tempint-oldtime3>200)then
begin
oldtime3:=GetTickCount;
deadflamestatus:=deadflamestatus+1;//更新火焰状态
if (deadflamestatus=9 ) then
deadflamestatus:=0;//火焰完毕
end;
end;
[ 本帖最后由 海鱼 于 2008-11-16 19:35 编辑 ]