092213112 刘泽中
loadMap();/*读地图*/ showLevel();/*显示地图等级*/ gamePlay();/*开始游戏*/ if(sumball==till) Win();
flag=0;/*退出循环标志*/
}else if(pg==2){level=pf+4;/*第二页的*/ levelAlone();
loadMap(); /*读地图*/ showLevel(); gamePlay();
if(sumball==till) /*判断赢了没*/
Win();
flag=0; }break;
}
setcolor(BLACK); setfillstyle(0,BLACK);
rectangle(orgx-2,orgy-2,orgx+9*mw+mw-1+2,orgy+9*nw+nw-1+2);
rectangle(orgx-10,orgy-10,orgx+9*mw+mw-1+10,orgy+9*nw+nw-1+10);
floodfill(orgx-5,orgy-5,BLACK);/*画选择地图的外方框*/ switch(pf){
case 1:orgx=35;orgy=20;break;/*地图位置坐标*/ case 2:orgx=260;orgy=20;break; case 3: orgx=35;orgy=250;break; case 4: orgx=260;orgy=250;break; }
setcolor(WHITE); setfillstyle(1,WHITE);
rectangle(orgx-2,orgy-2,orgx+9*mw+mw-1+2,orgy+9*nw+nw-1+2);
rectangle(orgx-10,orgy-10,orgx+9*mw+mw-1+10,orgy+9*nw+nw-1+10);
floodfill(orgx-5,orgy-5,WHITE);
常熟理工学院
putimage(510,20,buff2,COPY_PUT);/*取出缓存图像覆盖*/ setcolor(BLUE); settextstyle(2,0,6); if(pg==1){
sprintf(s,\输出选择地图的等级*/ outtextxy(540,70,s); }else if(pg==2){
sprintf(s,\第二页的地图等级*/ outtextxy(540,70,s); } } getch(); }
4.3.13 主界面函数 void Menu(){ int f=1;
本处略去作图代码(比较长)
while(f){/*While循环实现光标上下滚动的效果*/
switch(m){
case 1: setcolor(GREEN);
settextstyle(0,0,4);
outtextxy(240,160,\未选中,绿色*/ settextstyle(0,0,4);
setcolor(WHITE);/*其余未选中的为白色,下同*/ outtextxy(132,242,\ int p=0; char s[30]; int key; int m;
outtextxy(160,320,\ outtextxy(250,400,\
case 2: setcolor(GREEN);
092213112 刘泽中
settextstyle(0,0,4);
outtextxy(132,242,\ settextstyle(0,0,4); setcolor(WHITE);
outtextxy(240,160,\ outtextxy(160,320,\ outtextxy(250,400,\ case 3: setcolor(GREEN);
settextstyle(0,0,4);
outtextxy(160,320,\ settextstyle(0,0,4); setcolor(WHITE);
outtextxy(240,160,\ outtextxy(132,242,\ outtextxy(250,400,\ case 4: setcolor(GREEN);
settextstyle(0,0,4); outtextxy(250,400,\ settextstyle(0,0,4); setcolor(WHITE);
outtextxy(240,160,\ outtextxy(132,242,\ outtextxy(160,320,\ }
key=bioskey(0); switch(key){
case UP: if(m<2) m=4;else m--;break;
/*可实现从最下面可再按下回的最上面*/
case DOWN: if(m>3)m=1;else m++;break;
case ENTER: if(m==1) {f=0;p=1;}/*f为while循环的结束标志*/
else if(m==2) {f=0;p=2;} else if(m==3){f=0;p=3;} else if(m==4){f=0;p=4;}break;
}
常熟理工学院
}
if(p==1){loadLevel();}/*开始游戏,先读取等级*/ else if(p==2) {chooseKard();}/*选择关卡*/ else if(p==3) {softHighscore();}/*查看排行榜*/ else exit(0);}
4.3.14 主函数 int main(){
init();/*图形模式初始化*/
showMenu();/*显示游戏名称*/
Menu();/*调用主界面函数*/ cleardevice();/*清屏*/
getch();
closegraph();/*关闭图形模式*/
}
4.4 程序运行界面图示
4.4.1 程序开始界面
092213112 刘泽中
4.4.2 游戏主界面
4.4.3 开始游戏主界面