共有回帖数  0  个 
	 
	
	
	
     
          
          
               
				
			 
				
					 
 
            
				   - 
						
						
							 
									c语言怎么编游戏 
http://post.baidu.com/f?kz=4276396  
扫雷游戏 
http://post.baidu.com/f?kz=3651013 
做游戏常用到的一些函数 
http://post.baidu.com/f?kz=5416486 
赛车游戏的完整图  
http://post.baidu.com/f?kz=5417016 
简单打飞碟小游戏 
http://post.baidu.com/f?kz=3650980 
坦克大战小游戏 
http://post.baidu.com/f?kz=3650938 
吃豆小游戏  
http://post.baidu.com/f?kz=3651039 
INT10中断号  
http://post.baidu.com/f?kz=5416399
运动与静止同时实现 
在这里我用圆实现运动 
方块实现静止 
代码如下: 
#include graphics.h 
#include stdlib.h 
#include stdio.h 
#include conio.h 
int main(void) 
{ 
 int gdriver = DETECT, gmode; 
 void *ball; 
 int x, y,maxx; 
 unsigned int size; 
 initgraph(&gdriver, &gmode, ""); 
 maxx = getmaxx(); 
 x = 0; 
 y = 200; 
 rectangle(x,y+11,x+20,y+31); 
 circle(x+10,y,10); 
 size = imagesize(x, y-10, x+20, y+10); 
 ball = malloc(size); 
 setfillstyle(SOLID_FILL, BLACK); 
 while (!kbhit()) 
 { 
 cleardevice(); 
 x += 10; 
 if (x = maxx) 
 x = 0; 
 rectangle(0,211,20,231); 
 circle(x+10,y,10); 
 delay(100); 
 } 
 free(ball); 
 closegraph(); 
 return 0; 
}
在来说一下赛车游戏 
我上面给大家可以说是从第一步:制作简单的场景和玩家的赛车 
到第二步:进一步完善场景, 
大家可能已经有所领会 
下面我们就把它做成一个简单的游戏 
代码如下: 
#include math.h 
#include conio.h 
#include stdio.h 
#include stdlib.h 
#include graphics.h 
static int c=1; 
static int e=0; 
static int u=0; 
static int v=0; 
static int x=1; 
static int y=0; 
static int j=-21; 
static int i; 
static int b; 
void begin(void) 
{ 
int xmax, ymax; 
int startx,starty,endx,endy; 
setbkcolor(WHITE); 
xmax = getmaxx(); 
ymax = getmaxy(); 
endx=20;endy=20; 
startx=10;starty=10; 
setcolor(RED); 
settextstyle(1,HORIZ_DIR,4); 
outtextxy(10,240,"Bus Bus Bus"); 
outtextxy(300,300,"Made by PU BIN."); 
setlinestyle(SOLID_LINE,0,3); 
setwritemode(XOR_PUT); 
setcolor(GREEN); 
while(startxxmax&&startyymax) 
{ 
rectangle(startx,starty,endx,endy); 
delay(4); 
rectangle(startx,starty,endx,endy); 
startx+=2; 
starty+=startx*startx/2000; 
endx=startx+10; 
endy=starty+10; 
sound(startx*10); 
delay(10); 
nosound(); 
} 
getch(); 
cleardevice(); 
} 
void road(void) 
{ 
int h; 
for(h=0;h4;h++) 
line(150+h*100,0,150+h*100,472); 
for(h=0;h3;h++) 
{ 
setlinestyle(3,0,1); 
line(200+h*100,0,200+h*100,472); 
settextstyle(1,HORIZ_DIR,3); 
} 
settextstyle(1,HORIZ_DIR,4); 
setcolor(RED); 
outtextxy(40,40,"PASS"); 
outtextxy(40,80,"1"); 
setcolor(10); 
setlinestyle(SOLID_LINE,0,3); 
rectangle(150,400,450,460); 
outtextxy(160,410,"Ready,Begin!"); 
} 
void math(void) 
{ 
settextstyle(1,HORIZ_DIR,4); 
setcolor(RED); 
if(x==2) 
{ 
outtextxy(40,80,"1"); 
outtextxy(40,80,"2"); 
} 
else if(x==3) 
{ 
outtextxy(40,80,"2"); 
outtextxy(40,80,"3"); 
} 
else if(x==4) 
{ 
outtextxy(40,80,"3"); 
 outtextxy(40,80,"4"); 
 }else if(x==5){ 
 outtextxy(40,80,"4"); 
 outtextxy(40,80,"5"); 
 }else if(x==6){ 
 outtextxy(40,80,"5"); 
 outtextxy(40,80,"6"); 
 }else if(x==7){ 
 outtextxy(40,80,"6"); 
 outtextxy(40,80,"7"); 
 }else if(x==8){ 
 outtextxy(40,80,"7"); 
 outtextxy(40,80,"8"); 
 }else if(x==9){ 
 outtextxy(40,80,"8"); 
 outtextxy(40,80,"9"); 
 }else if(x==10){ 
 outtextxy(40,80,"9"); 
 outtextxy(40,80,"10"); 
 }else if(x==11){ 
 outtextxy(40,80,"10"); 
 outtextxy(40,80,"11"); 
 }else if(x==12){ 
 outtextxy(40,80,"11"); 
 outtextxy(40,80,"12"); 
 }else if(x==13){ 
 outtextxy(40,80,"12"); 
 outtextxy(40,80,"13"); 
 }else if(x==14){ 
 outtextxy(40,80,"13"); 
 outtextxy(40,80,"14"); 
 }else if(x==15){ 
 outtextxy(40,80,"14"); 
 outtextxy(40,80,"15"); 
 }else if(x==16){ 
 outtextxy(40,80,"15"); 
 outtextxy(40,80,"16"); 
 }else if(x==17){ 
 outtextxy(40,80,"16"); 
 outtextxy(40,80,"17"); 
 }else if(x==18){ 
 outtextxy(40,80,"17"); 
 outtextxy(40,80,"18"); 
 }else if(x==19){ 
 outtextxy(40,80,"18"); 
 outtextxy(40,80,"19"); 
 }else if(x==20){ 
 outtextxy(40,80,"19"); 
 outtextxy(40,80,"20"); 
 }else if(x==21){ 
 outtextxy(40,80,"20"); 
 outtextxy(40,80,"21"); 
 }else if(x==22){ 
 outtextxy(40,80,"21"); 
 outtextxy(40,80,"22"); 
 }else if(x==23){ 
 outtextxy(40,80,"22"); 
outtextxy(40,80,"23"); 
 }else if(x==24){ 
 outtextxy(40,80,"23"); 
 outtextxy(40,80,"24"); 
 }else if(x==25){ 
 outtextxy(40,80,"24"); 
 outtextxy(40,80,"25"); 
 y=1; v=1; 
} 
} 
void bus2(void) 
{ 
 	setcolor(BLUE); 
 	rectangle(180+c*100,350,220+c*100,390); 
rectangle(170+c*100,340,230+c*100,350); 
 	rectangle(190+c*100,320,210+c*100,340); 
 	rectangle(170+c*100,390,230+c*100,400); 
 	setcolor(5); 
 	line(190+c*100,350,190+c*100,390); 
 	line(200+c*100,350,200+c*100,390); 
 	line(210+c*100,350,210+c*100,390); 
 	line(200+c*100,300,200+c*100,320); 
line(185+c*100,300,215+c*100,300); 
if((b==0x4b00)&&(c0)) 
 	c--; 
 	else if((b==0x4d00)&&(c2)) 
 	c++; 
 	else if((b==0x5000)&&(c2)) 
sleep(1); 
 	setcolor(BLUE); 
rectangle(180+c*100,350,220+c*100,390); 
 	rectangle(170+c*100,340,230+c*100,350); 
 	rectangle(190+c*100,320,210+c*100,340); 
 	rectangle(170+c*100,390,230+c*100,400); 
 	setcolor(5); 
 	line(190+c*100,350,190+c*100,390); 
 	line(200+c*100,350,200+c*100,390); 
 	line(210+c*100,350,210+c*100,390); 
 	line(200+c*100,300,200+c*100,320); 
line(185+c*100,300,215+c*100,300); 
setcolor(BLUE); 
} 
void light(void) 
{ 
 	rectangle(535,65,565,155); 
 	floodfill(545,100,BLUE); 
setfillstyle(1,RED); 
 	fillellipse(550,80,10,10); 
 	sound(650); 
 	delay(300); 
 	nosound(); 
 	delay(100); 
 	setfillstyle(1,YELLOW); 
 	fillellipse(550,110,10,10); 
sound(650); 
 	delay(300); 
 	nosound(); 
 	delay(100); 
 	setfillstyle(1,GREEN); 
 	fillellipse(550,140,10,10); 
sound(650); 
 	delay(300); 
 	nosound(); 
 	delay(100); 
setcolor(10); 
 	setlinestyle(SOLID_LINE,0,3); 
 	rectangle(150,400,450,460); 
 	outtextxy(160,410,"Ready,Begin!"); 
} 
void brock(void) 
{ 
if((c==i)&&(j4)&&(j38)) 
e=1; 
} 
void tree(void) 
{ 
int w; 
int poly[14]; 
setcolor(10); 
for (w=-3;w3;w=w+2) 
{ 
line(85,-25+u*15+w*157,85,35+u*15+w*157); 
line(95,-25+u*15+w*157,95,35+u*15+w*157); 
line(105,-25+u*15+w*157,105,35+u*15+w*157); 
line(115,-25+u*15+w*157,115,35+u*15+w*157); 
line(75,-9+u*15+w*157,75,19+u*15+w*157); 
line(125,-9+u*15+w*157,125,19+u*15+w*157); 
} 
for (w=-2;w3;w=w+2) 
{ 
poly[0] = 530; 
poly[1] = u*15+w*157; 
poly[2] =515; 
poly[3] = 25+u*15+w*157; 
poly[4] =485; 
poly[5] =25+u*15+w*157 ; 
poly[6] =470; 
poly[7] =u*15+w*157 ; 
poly[8] =485; 
poly[9] =-25+u*15+w*157; 
poly[10] =515; 
poly[11] =-25+u*15+w*157 ; 
poly[12] = poly[0]; 
poly[13] = poly[1]; 
drawpoly(7,poly); 
} 
} 
void bus1(void) 
{ 
randomize(); 
i=random(3); 
setlinestyle(SOLID_LINE,0,3); 
do 
{ 
do 
{ 
if((x!=7)&&(x!=16)&&(x!=23)) 
setcolor(x); 
else 
setcolor(2); 
rectangle(170+i*100,j*10,230+i*100,60+j*10); 
 	rectangle(160+i*100,70+j*10,240+i*100,260+j*10); 
line(180+i*100,70+j*10,180+i*100,260+j*10); 
 	line(200+i*100,70+j*10,200+i*100,260+j*10); 
 	line(220+i*100,70+j*10,220+i*100,260+j*10); 
 	tree(); 
sound(j*10); 
delay(10); 
nosound(); 
if((x!=7)&&(x!=16)&&(x!=23)) 
setcolor(x); 
else 
setcolor(2); 
rectangle(170+i*100,j*10,230+i*100,60+j*10); 
rectangle(160+i*100,70+j*10,240+i*100,260+j*10); 
line(180+i*100,70+j*10,180+i*100,260+j*10); 
line(200+i*100,70+j*10,200+i*100,260+j*10); 
line(220+i*100,70+j*10,220+i*100,260+j*10); 
tree(); 
u++; 
j++; 
brock(); 
if(e==1) 
{ 
j=48; 
y=1; 
u=63; 
v=0; 
} 
}while((bioskey(1)==0)&&(j=47)&&(u=62)); 
if((j=47)&&(u=62)) 
/* function 0 returns the key that is waiting */ 
{ 
b= bioskey(0); 
bus2(); 
} 
 	else if(u=62) 
{ 
j=-21; 
 	randomize(); 
 	i=rand()%3; 
 	x++; 
 	math(); 
 	setcolor(x); 
} 
else 
u=0; 
}while(y!=1); 
} 
void end() 
{ 
if (v==1) 
{ 
 	for(j=0;j94;j++) 
{ 
 	rectangle(150,j*5,450,60+j*5); 
 	settextstyle(1,HORIZ_DIR,4); 
 	outtextxy(160,10+j*5,"STOP! You win!"); 
 	sound(500+j*10); 
 	delay(2); 
 	nosound(); 
 	setlinestyle(SOLID_LINE,0,3); 
 	rectangle(150,j*5,450,60+j*5); 
outtextxy(160,10+j*5,"STOP! You win!"); 
 	} 
 	closegraph(); 
 	printf("nnyou win!"); 
} 
 	else if(v==0 ) 
{ 
 	closegraph(); 
printf("nnYou lose."); 
 	} 
printf("nnnCome back again.nn Made by YOU LIAO working house. pubingk@citiz.net"); 
getch(); 
getch(); 
} 
void car() 
{ 
 	setcolor(BLUE); 
 	setlinestyle(SOLID_LINE,0,3); 
rectangle(280,350,320,390); 
 	rectangle(270,340,330,350); 
 	rectangle(290,320,310,340); 
 	rectangle(270,390,330,400); 
setcolor(5); 
line(290,350,290,390); 
line(300,300,300,320); 
line(300,350,300,390); 
line(310,350,310,390); 
line(285,300,315,300); 
setcolor(BLUE); 
} 
void main(void) 
{ 
int gdriver = DETECT , gmode; 
  
initgraph(&gdriver, &gmode, ""); 
begin(); 
setbkcolor(7); 
setcolor(WHITE); 
setwritemode(XOR_PUT); 
road(); 
car(); 
light(); 
bus1(); 
end(); 
}
							 
							 
							 
							  
							  
							  楼主 2016-03-26 14:39 回复
						 
						 
           
          
          
         
   
         
      
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知