该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#define bjys 0
#define qjys WHITE
#define maxbox 7
#define zuox 12
#define zuoy 12
#define bianchang 9
#define spcd 50
#define czcd 50
int chushix=zuox+bianchang*spcd/2;
int chushiy=zuoy+bianchang*42;
struct diban
{
int zhanyong;
int ys;
}dibanzt[czcd][spcd];
struct moxing
{
char box[8];
int color;
int next;
};
struct moxing moxingti[maxbox]=
{
{0x3c,0x3c,0x3c,0x3c,0xc3,0xc3,0xff,0xff,RED,1},
{0x30,0x30,0x30,0x30,0x30,0x30,0xff,0xff,LIGHTGRAY,2},
{0x30,0x30,0xff,0xff,0x3c,0x3c,0xff,0xff,GREEN,3},
{0x0c,0x0c,0xff,0xff,0x3c,0x3c,0xff,0xff,LIGHTGREEN,4},
{0x3c,0x3c,0xc3,0xc3,0xc3,0xc3,0x3c,0x3c,BLUE,5},
{0xcf,0xcf,0x3c,0x3c,0x3c,0x3c,0xc3,0xc3,LIGHTMAGENTA,6},
{0xf3,0xf3,0x3c,0x3c,0x3c,0x3c,0xc3,0xc3,MAGENTA,7} /*未包含boss模型*/
};
void guanqia()
{
rectangle(468+13,12,468+110,52+60);
outtextxy(468+20,12+10,"关卡");
}
void fssm()
{
rectangle(468+13,12+110,468+110,52+300);
outtextxy(468+20,12+120,"分数");
outtextxy(468+20,12+210,"生命值");
}
int dikuang(int x,int y,int bc)
{
int oldx=x;
int m,n;
for(m=0;m
{
for(n=0;n
{
dibanzt[n][m].zhanyong=0;
dibanzt[n][m].ys=bjys;
line(x,y,x+bc,y);
line(x,y,x,y+bc);
line(x,y+bc,x+bc,y+bc);
line(x+bc,y,x+bc,y+bc);
x+=bc;
}
y+=bc;
x=oldx;
}
}
void biankuang()
{
line(12,12,463,12);
line(12,12,12,463);
line(463,12,463,463);
line(12,463,463,463);
}
void showbox(int x,int y)
{
int m,n,i,l;
l=x;
setfillstyle(1,WHITE);
for(i=0;i<8;i++)
{
int duibi=128;
for(n=0;n<8;n++)
{
if((moxingti[0].box[i])&duibi)
{
bar(x,y,x+bianchang,y+bianchang);
}
x+=bianchang;
duibi/=2;
}
y+=bianchang;
x=l;
}
}
int xiaochu(int x,int y)
{
int m,n,i,l;
l=x;
setfillstyle(1,BLACK);
for(i=0;i<8;i++)
{
for(n=0;n<8;n++)
{
bar(x,y,x+bianchang,y+bianchang);
x+=bianchang;
}
y+=bianchang;
x=l;
}
}
void yidong()
{
int key1,key2;
while(key1=getch())
{
if(key1==27) /*ESC建退出*/
break;
key2=getch();
if(key1=224)
{
switch(key2)
{
case 72: /*上*/
xiaochu(chushix,chushiy);
chushiy-=bianchang;
showbox(chushix,chushiy);
break;
case 80: /*下*/
xiaochu(chushix,chushiy);
chushiy+=bianchang;
showbox(chushix,chushiy);
break;
case 75: /*左*/
xiaochu(chushix,chushiy);
chushix-=bianchang;
showbox(chushix,chushiy);
break;
case 77: /*右*/
xiaochu(chushix,chushiy);
chushix+=bianchang;
showbox(chushix,chushiy);
break;
}
}
}
}
int main()
{
int gd=VGA,gm=VGAHI;
setinitmode(NULL); /*去除ege片头动画*/
initgraph(&gd,&gm,"");
SetBkColor(0,0);
setcolor(qjys);/*setfillstyle(1,WHITE); bar(实填充)的颜色由它控制*/
randomize();
dikuang(zuox,zuoy,bianchang);
biankuang();
guanqia();
showbox(chushix,chushiy);
fssm();
yidong();
getch();
closegraph();
return 0;
}