啥也不说,先上代码
static int nAlpha = 0;
int step = 10;//这个是用来设置步长的,也就是每次衰减或者增加多少
DDALPHABLTFX alphatx;
alphatx.dwSize = sizeof(alphatx);
alphatx.ddargbScaleFactors.alpha = nAlpha;
pDDSurface->AlphaBlt(NULL, m_pDDSBackground, NULL, DDBLT_WAITNOTBUSY, &alphatx);
nAlpha = nAlpha + step;// set the alpha value
if(nAlpha > UCHAR_MAX)
{
nAlpha = UCHAR_MAX;
m_bStartButtonDown =false;//reset the value about transmate
nAlpha = 0;
theAPP.m_MainWnd.SwitchScene(1);//Change to scene 1
}
应该很明显了,就不讲解了。另外提供一个清屏代码
{
DDBLTFX ddbltfx;
memset(&ddbltfx, 0, sizeof(ddbltfx));
ddbltfx.dwSize = sizeof(ddbltfx);
ddbltfx.dwFillColor = 0;
pSurface->Blt(NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAITNOTBUSY, &ddbltfx);
}
很明显啦,其他不用讲