现在思路有了 素材有了 编写工具:由于个人喜好:我采用了VC6.0
那么下面正式开工:
第一步当然是初始化了:
BOOL CGame::init()
{
for(int i=0;i<5;i++)
{ //..
enemy[i].character=1;
enemy[i].hp=2;
enemy[i].x0=rand()%512+34;
enemy[i].y0=-12;
enemy[i].x1=0;
enemy[i].y1=0;
enemy[i].m11=1;
enemy[i].m12=3;
enemy[i].m0=1;
enemy[i].m1=4;
enemy[i].w=68;
enemy[i].h=62;
enemy[i].p=1;
enemy[i].p1=1;
enemy[i].Z=1;
}
//Sprite Star={0,10,256,256,1,6,58,46,1,1};
for(i=0;i<1;i++)
{
Star.character=0;
Star.hp=10;
Star.x0=256;
Star.y0=256;
Star.m0=1;
Star.m1=6;
Star.w=58;
Star.h=46;
Star.p=1;
Star.Z=1;
}
Bul_Num=0;
score=0;
tim=0;
return TRUE;
}
在初始化中建立了兼容DC和图片:需要关心的是在上面摘录下的代码中对英雄STAR和敌人ENEMY[]都进行了初始化
第二步:实现背景的滚轴效果:这里用到两张同样的图片实现
BOOL CGame::ShowPic()
{if(MapH>=0)
{BitBlt(BKDC0,0,0,map.w,MapH,BKDC,0,map.h-MapH,SRCCOPY);
BitBlt(BKDC0,0,MapH,map.w,map.h,BKDC,0,0,SRCCOPY);}
else
{MapH=map.h;}
MapH-=4;
GetPic(Star.character);
GetPic(1);
return TRUE;
}
第三步自然就是加载自己的英雄进来,并且让他动起来:
if(i==0)
{sprintf(name,"%sTrooper0%d.bmp",StaticDir,Star.p);
if(!AddPic(name)) return FALSE;
//AfxMessageBox(name);
Star.p++;
if(Star.p>=Star.m1) Star.p=Star.m0;
SelectObject(MEMDC,bitmap);
TransparentBlt2(BKDC0,Star.x0,Star.y0,Star.w,Star.h,MEMDC,0,0,Star.w,Star.h,RGB(0,255,0));}
这段代码就是把英雄加载到(Star.w,Star.h)坐标上