?? alpha.cpp
字號:
//alpha.cpp
#include<windows.h>
#include<ddraw.h>
#pragma comment(lib,"ddraw")
extern LPDIRECTDRAWSURFACE lpDDSBack,lpDDBgm1,lpDDHelp,lpDDSPic3;
extern bool help;
void ALPHA(double Alpha)
{
DDSURFACEDESC ddsd;
ddsd.dwSize=sizeof(ddsd);
lpDDSBack->Lock(NULL,&ddsd,DDLOCK_WAIT,NULL);
BYTE *Address1=(BYTE*)ddsd.lpSurface;
lpDDSBack->Unlock(&ddsd);
DDSURFACEDESC ddsd1;
ddsd1.dwSize=sizeof(ddsd1);
lpDDHelp->Lock(NULL,&ddsd1,DDLOCK_WAIT,NULL);
BYTE *Address2=(BYTE*)ddsd1.lpSurface;
lpDDHelp->Unlock(&ddsd1);
DDSURFACEDESC ddsd2;
ddsd2.dwSize=sizeof(ddsd2);
lpDDSPic3->Lock(NULL,&ddsd2,DDLOCK_WAIT,NULL);
BYTE *NewAdress=(BYTE*)ddsd2.lpSurface;
lpDDSPic3->Unlock(&ddsd2);
for(int j=400,j1=0;j<640;j++,j1++)
for(int i=600,i1=0;i<924;i++,i1++)
{
*(NewAdress+ddsd2.lPitch*j1+i1*4) = *(Address1+ddsd.lPitch*j+i*4) *Alpha + *(Address2+ddsd1.lPitch*j1+i1*4)*(1-Alpha);
*(NewAdress+1+ddsd2.lPitch*j1+i1*4) = *(Address1+1+ddsd.lPitch*j+i*4) *Alpha + *(Address2+1+ddsd1.lPitch*j1+i1*4)*(1-Alpha);
*(NewAdress+2+ddsd2.lPitch*j1+i1*4) = *(Address1+2+ddsd.lPitch*j+i*4) *Alpha + *(Address2+2+ddsd1.lPitch*j1+i1*4)*(1-Alpha);
}
static RECT rect1;
::SetRect(&rect1,0,0,324,240);
if(help)
lpDDSBack->BltFast(600,400,lpDDSPic3,&rect1,DDBLTFAST_WAIT);
}
void MINCREEN()
{
static RECT rect1,rect2,rect3;
::SetRect(&rect1,0,0,1024,768);
::SetRect(&rect2,700,500,1024,768);
lpDDSBack->Blt(&rect2,lpDDSBack,&rect1,DDBLTFAST_WAIT,NULL);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -