c语言小游戏.docx
- 文档编号:27425723
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:23
- 大小:17.01KB
c语言小游戏.docx
《c语言小游戏.docx》由会员分享,可在线阅读,更多相关《c语言小游戏.docx(23页珍藏版)》请在冰豆网上搜索。
c语言小游戏
c语言小游戏
#include
#include
#include
#include
#include
intx,y,x1,y1,vx,vy,a,b,z,n,gk=1;
floatt,i,m,jd=45;
/*图形初始化*/
graph()
{
intgdriver,gmode;
gdriver=DETECT;
initgraph(&gdriver,&gmode,"");
}
/*艺术清屏*/
qp()
{
floatl,m;
setcolor(14);
for(l=1;l<=21;l=l+.02)
{
m=l;
while(m<480)
{
line(1,m,640,m);
m=m+20;
}
}
}
/*艺术*/
ys()
{
floatf,g;
setcolor(10);
for(f=1;f<=637;f=f+.2)
{
setcolor(3);
line(1,637-f/2,f,0);
line(637,f/2,637-f,478);
}
for(g=1;g<=478;g=g+.2)
{
setcolor(BLUE);
line(1,278-g/2,g,0);
line(637,200+g/2,637-g,478);
}
}
/*画点*/
hd()
{
inti,x,y,z;
for(i=0;i<6000;i++)
{
x=random(640);
y=random(480);
z=random(16);
putpixel(x,y,z);
delay(100);
}
}
/*游戏说明*/
sm()
{
settextstyle(0,0,2);
setcolor(13);
outtextxy(0,0,"press'w'or's'forsettingdirection.");
outtextxy(0,30,"press'space'forshooting,'Esc'toquit.");
}
/*倒计时*/
ksyx()
{
sleep
(2);
cleardevice();
settextstyle(0,0,31);
setcolor(13);
outtextxy(225,100,"5");
sleep
(1);
cleardevice();
setcolor(14);
outtextxy(225,100,"4");
sleep
(1);
cleardevice();
setcolor
(2);
outtextxy(225,100,"3");
sleep
(1);
cleardevice();
setcolor(10);
outtextxy(225,100,"2");
sleep
(1);
cleardevice();
setcolor(14);
outtextxy(225,100,"1");
sleep
(1);
cleardevice();
setcolor(10);
settextstyle(0,0,6);
outtextxy(50,200,"Let'splay!
!
");
sleep
(1);
}
/*开机动画*/
kjdh()
{
setbkcolor
(1);
cleardevice();
setcolor(13);
settextstyle(1,0,4);
for(i=1;i<230;i++)
{
delay(2000);
cleardevice();
outtextxy(i,200,"software");
outtextxy(450-i,260,"Excellent!
!
");
}
settextstyle(4,0,10);
setcolor(14);
outtextxy(225,50,"041");
setcolor(4);
settextstyle(1,0,8);
outtextxy(60,300,"Weareheros");
sleep
(1);
settextstyle(0,0,6);
for(i=320;i>1;i--)
{
delay(600);
setcolor(10);
line(i,1,i,479);
line(639-i,1,639-i,479);
setcolor
(1);
outtextxy(60,260,"Bestshooter");
}
hq();
hd2();
cleardevice();
setbkcolor(0);
setcolor(14);
ellipse(320,240,0,360,300,150);
sleep
(1);
setcolor
(2);
setlinestyle(0,0,3);
circle(320,240,150);
sleep
(1);
settextstyle(1,0,4);
setcolor(4);
outtextxy(80,230,"HebeiUniversityofTechnology");
hd();
ys();
qp();
sleep
(1);
cleardevice();
setbkcolor
(1);
settextstyle(0,0,4);
outtextxy(10,260,"Welcometoourgame");
settextstyle(0,0,6);
setcolor(11);
outtextxy(150,330,"World!
!
");
hq();
}
/*随机画点*/
hd2()
{
longinti,x,z,y;
for(i=0;i<600000;i++)
{
x=random(640);
y=random(480);
z=random(16);
putpixel(x,y,z);
}
}
/*画旗*/
hq()
{
inti;
setlinestyle(0,0,3);
setcolor(14);
line(180,30,100,230);
setcolor(4);
line(180,30,500,30);
line(183,30,123,180);
line(120,180,440,180);
line(500,30,440,180);
setfillstyle(9,4);
floodfill(200,40,4);
for(i=0;i<307;i++)
{
settextstyle(0,0,4);
setcolor(i+12);
outtextxy(200,50,"Software");
setcolor(i);
settextstyle(4,0,6);
outtextxy(240,110,"041");
}
}
/*礼花*/
lh()
{
intx,y,i,n=0;
setcolor(14);
while(n<=6)
{
setlinestyle(0,0,3);
x=random(640);
y=random(100);
for(i=480;i>y;i--)
{
setcolor(0);
line(x,i+1,x,i-4);
setcolor(14);
line(x,i,x,i-5);
delay(50);
}
for(i=1;i<90;i++)
{
setcolor(i);
circle(x,y,i);
delay(2000);
setcolor(0);
circle(x,y,i);
}
n++;
}
}
/*目标小旗*/
mbxq(intx,inty)
{
setlinestyle(0,0,1);
setcolor(4);
moveto(x,y);
lineto(x,y-20);
lineto(x+10,y-20);
lineto(x,y-10);}
/*地图1*/
map1()
{
setlinestyle(0,0,3);
setbkcolor(0);
setcolor
(2);
moveto(50,480);
lineto(200,400);
lineto(250,400);
lineto(300,450);
lineto(580,200);
lineto(640,200);
setcolor(3);
rectangle(210,370,240,400);
rectangle(610,170,640,200);
mbxq(225,370);
mbxq(625,170);}
map2()
{
setlinestyle(0,0,3);
setbkcolor(0);
setcolor
(2);
moveto(50,480);
lineto(200,400);
lineto(300,150);
lineto(350,100);
lineto(400,100);
lineto(450,450);
lineto(580,200);
lineto(640,200);
setcolor(3);
rectangle(360,70,390,100);
rectangle(610,170,640,200);
mbxq(375,70);
mbxq(625,170);}
map3()
{
setlinestyle(0,0,3);
setbkcolor(0);
setcolor
(2);
moveto(50,480);
lineto(100,400);
lineto(200,360);
lineto(300,150);
lineto(400,400);
lineto(450,450);
lineto(550,400);
lineto(640,400);
setcolor(3);
rectangle(580,370,610,400);
mbxq(595,370);}
map4()
{
setlinestyle(0,0,3);
setbkcolor(0);
setcolor
(2);
moveto(50,480);
lineto(100,200);
lineto(200,360);
lineto(300,150);
lineto(450,450);
lineto(600,400);
lineto(640,400);
setcolor(3);
rectangle(600,370,640,400);
mbxq(620,370);
}
map5()
{
setlinestyle(0,0,3);
setbkcolor(0);
setcolor
(2);
line(200,30,225,110);
line(200,30,175,110);
line(225,110,265,125);
line(265,125,225,130);
line(225,130,200,210);
line(200,210,175,138);
line(175,138,135,125);
line(135,125,175,110);
setfillstyle(11,2);
floodfill(200,200,2);
moveto(50,480);
lineto(200,400);
lineto(300,250);
lineto(400,170);
lineto(420,250);
lineto(470,250);
lineto(580,120);
lineto(640,120);
setcolor(3);
rectangle(440,220,470,250);
rectangle(600,90,640,120);
mbxq(620,90);
mbxq(455,220);}
map6()
{
/*折线点坐标*/
intxy[6][2]=
{
{
50,480
}
{
120,400
}
{
220,250
}
{
320,120
}
{
430,180
}
{
640,150
}
}
;
setbkcolor(0);
setcolor(3);
rectangle(625,135,640,150);
mbxq(630,135);
/*射击目标*/
setcolor
(2);
setlinestyle(0,0,3);
drawpoly(6,xy);
/*折线连接*/
}
/*结束动画*/
jsdh()
{
inti;
cleardevice();
for(i=0;i<107;i++)
{
setcolor(i);
settextstyle(0,0,6);
outtextxy(40,110,"Allmissions");
outtextxy(80,200,"Completed!
");
}
}
/*力度条*/
ld()
{
intn=1;
setlinestyle(0,0,3);
for(a=1;a<=100;a++)
{
rectangle(151,470,251,480);
line(150+a,470,150+a,480);
delay(20000000);
if(a>99)
{
setcolor(n);
n++;
a=1;
}
/*如果击键*/
if(kbhit()!
=0)
{
setcolor(3);
setfillstyle(1,3);
rectangle(151,470,251,480);
floodfill(200,475,3);
break;
}
}
}
/*角度设置*/
hjd()
{
setlinestyle(0,0,3);
while
(1)
{
x=30*cos(jd/57.3);
y=480-30*sin(jd/57.3);
z=490-30*sin(jd/57.3);
setcolor(10);
line(0,470,x,y);
line(0,500,x+20,z);
line(x,y,x+20,z);
b=getch();
if(b=='w'&&jd<=89)
{
setcolor(0);
/*准备清屏*/
line(0,470,x,y);
line(0,500,x+20,z);
line(x,y,x+20,z);
jd=jd+1;
/*清三条线后角度加1*/
}
if(b=='s'&&jd>=1)
{
setcolor(0);
line(0,470,x,y);
line(0,500,x+20,z);
line(x,y,x+20,z);
jd=jd-1;
}
if(b==32)
break;
/*如果摁空格(ASCII码32)*/
if(b==27)
exit(0);
/*Esc*/
}
}
/*炮弹爆炸*/
bz()
{
setcolor(4);
circle(x,y,10);
setfillstyle(1,4);
floodfill(x,y,4);
setcolor(0);
for(n=10;n>0;n--)
{
circle(x,y,n);
delay(5000000);
}
setcolor(4);
circle(x,y,10);
setfillstyle(1,4);
floodfill(x-2,y,4);
setcolor(0);
for(n=1;n<11;n++)
{
circle(x,y,n);
delay(5000000);
}
}
/*主函数*/
main()
{
graph();
/*图形初始化*/
kjdh();
/*开机动画*/
ksyx();
/*倒计时*/
q:
t=0;
setlinestyle(0,0,3);
cleardevice();
sm();
/*游戏说明*/
/*地图调用*/
switch(gk)
{
case1:
map1();
break;
case2:
map2();
break;
case3:
map3();
break;
case4:
map4();
break;
case5:
map5();
break;
case6:
map6();
break;
case7:
jsdh();
getch();
exit(0);
/*结束动画*/
}
hjd();
/*角度*/
ld();
/*力度*/
vx=8*a*cos(jd/57.3);
vy=8*a*sin(jd/57.3);
while
(1)
{
x=30+vx*t;
y=470-vy*t+180*t*t;
if(y<-10)y=-10;
/*炮弹运动轨迹*/
/*如果撞击或打中目标的反应情况*/
for(i=0;i<=6.28;i=i+0.1)
{
x1=x+5*cos(i);
y1=y+5*sin(i);
if(getpixel(x1,y1)==3)
{
bz();
settextstyle(1,0,3);
setcolor(14);
outtextxy(0,50,"youarewin,congratulations!
!
!
");
lh();
/*礼花*/
getch();
gk++;
/*关卡*/
gotoq;
}
}
/*如果撞击山峰的反应情况*/
for(i=0;i<=6.28;i=i+0.1)
{
x1=x+5*cos(i);
y1=y+5*sin(i);
/*如果指定坐标颜色为2(绿)*/
if(getpixel(x1,y1)==2)
{
bz();
settextstyle(1,0,3);
setcolor(10);
outtextxy(0,50,"youarefailed,pleasetryagain");
getch();
getch();
gotoq;
}
}
/*如果超出屏幕退出*/
if(x>640||y>480)
{
setcolor(10);
settextstyle(1,0,3);
outtextxy(0,50,"youarefailed,pleasetryagain");
getch();
getch();
gotoq;
}
setcolor(4);
setfillstyle(1,4);
circle(x,y,5);
floodfill(x,y,4);
t=t+0.01;
delay(3000);
setcolor(0);
circle(x,y,5);
setfillstyle(1,0);
floodfill(x,y,0);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 小游戏