回 帖 发 新 帖 刷新版面

主题:运行一下

#include<graphics.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<alloc.h>

#define ESC 0x11b/*ESC的ASCII码,十六进制*/

void InstallGraph(void);/*图形程序加载函数的说名语句*/
void DrawGun(void); /*画发射架函数的说明语句*/
void DrawPlan(void); /*画飞机函数的说明语句*/
void DrawStar(void); /*画星函数的说明语句*/

void *buf; /*全局变量,用于存储飞机的图像*/
int x0=300; /*以下是飞机的位置初始化参数*/
int y0=340;
int width1=5;
int width2=20;
int height=25;
int y1=8;
int y2=15;
int y3=23;
int y4=38;

/*主函数开始*/
main()
{
int size;
int i=0;
int key;
int station;


InstallGraph();
setbkcolor(BLACK);
cleardevice();/*图形驱动程序和屏幕初始化工作完成*/

setcolor(BLUE);/*设置字的颜色*/
settextstyle(TRIPLEX_FONT,0,4);/*设置字体*/
outtextxy(80,100,"Ready!...Any key to SET OFF !!!");
DrawGun(); /*画出发射架*/
getch(); /*if press key,clear the words and start*/

cleardevice();
DrawGun();
DrawPlan();
DrawStar();
setcolor(LIGHTRED);/*define result words color*/

  do{ /*程序主循环开始,用于运动飞机,方法是用异或的方式在屏幕上连续画出飞机 的图像,每画一次,新图像和来的位置相差两个像素点。
这个值是可调的,值越大,飞机飞行的速度越快*/

putimage(x0-width2,y0-height-3*width1-i,buf,XOR_PUT);
i+=2;
putimage(x0-width2,y0-height-3*width1-i,buf,XOR_PUT);

key=getch();
if(y0-height-3*width1-i==0)
outtextxy(60,100,"Successfully!!! Press ESC to quit");
if(key==ESC){
if(y0-height-3*width1-i>0){
cleardevice();
outtextxy(100,100,"Failue. What did you do?");
outtextxy(130,300,"Press any key to quit.");
getch();
}
}

}while(key!=ESC);

free(buf);
closegraph();
return 0;

}
/*Install the graphics library*/

void InstallGraph(void)
{
int grdriver=DETECT;
int grmode;
int errorcode;
char *errormsg;

initgraph(&grdriver,&grmode,"");
registerbgidriver(EGA64);
registerbgifont(TRIPLEX_FONT);
errorcode=graphresult();
errormsg=grapherrormsg(errorcode);
if(errorcode!=grOk){
printf("Graphics error: %s\n",errormsg);
printf("Press any key to exit.\n");
getch();
exit(1);
}
}

/*Draw the star */

void DrawStar(void)
{
int seed=2000;
int i,dotx,doty,height,width,color,maxcolor;

maxcolor=getmaxcolor();
width=getmaxx();
height=getmaxy();

srand(seed);
for(i=0;i<250;i++){
dotx=i+random(width-1);
doty=i+random(height-1);
color=random(maxcolor);

setcolor(color);
putpixel(dotx,doty,color);
circle(dotx+1,doty+1,1);

}
srand(seed);
}
/*Draw the bottom gun*/
void DrawGun(void)
{
int x0=300;
int y0=430;
int height=45;
int rx=20;
int ry=5;
int rightx,righty,leftx,lefty;
int centery1=30;
rightx=righty=leftx=lefty=12;


setcolor(LIGHTGREEN);
ellipse(x0,y0,180,360,rx,ry);
ellipse(x0,y0-height,0,360,rx,ry);
line(x0+rx,y0,x0+rx,y0-height);
line(x0-rx,y0,x0-rx,y0-height);

moveto(x0+rx,y0);
lineto(x0+rx+rightx,y0+righty);
moveto(x0+rx+rightx,y0+righty);
lineto(x0+rx+rightx+10,y0+righty+10);
circle(x0+rx+rightx+10,y0+righty+10,4);


moveto(x0,y0+ry);
lineto(x0,y0+centery1);
moveto(x0,y0+centery1);
lineto(x0,y0+centery1+10);
circle(x0,y0+centery1+10,4);


moveto(x0-rx,y0);
lineto(x0-rx-leftx,y0+lefty);
moveto(x0-rx-leftx,y0+lefty);
lineto(x0-rx-leftx-10,y0+lefty+10);
circle(x0-rx-leftx-10,y0+lefty+10,4);

line(x0-rx-leftx,y0+lefty,x0,y0+centery1);
line(x0,y0+centery1,x0+rx+rightx,y0+righty);
}
/*Draw the plan fly to the sky*/
void DrawPlan(void)
{


int size;

setcolor(LIGHTRED);
setfillstyle(1,BLUE);
ellipse(x0,y0-height,0,180,width1,3*width1);

moveto(x0+width1,y0); /*moveto center right side*/
lineto(x0+width1,y0-height);
moveto(x0+width1,y0);
lineto(x0+width2,y0+y2);

moveto(x0-width1,y0); /*moveto center left side*/
lineto(x0-width1,y0-height);
moveto(x0-width1,y0);
lineto(x0-width2,y0+y2);

moveto(x0+width2,y0+y3);/*moveto right bottom side*/
lineto(x0+width2,y0+y1);
moveto(x0+width2,y0+y3);
lineto(x0+width1,y0+y2);

moveto(x0-width2,y0+y3);/*moveto left bottom side*/
lineto(x0-width2,y0+y1);
moveto(x0-width2,y0+y3);
lineto(x0-width1,y0+y2);

moveto(x0,y0+y4); /*moveto the bottomest*/
lineto(x0+width1,y0+y2);
moveto(x0,y0+y4);
lineto(x0-width1,y0+y2);

setfillstyle(2,LIGHTRED); /*fill the plan with a style */
floodfill(x0,y0,LIGHTRED);

size=imagesize(x0-width2-1,y0-height-3*width1,
x0+width2+1,y0+y4);
buf=malloc(size);
if(!buf){
printf("No enough memory!");
exit(0);
}
getimage(x0-width2,y0-height-3*width1,x0+width2,y0+y4,buf);

}

回复列表 (共20个回复)

沙发

高人!厉害!佩服!

板凳

为什么,我一运行就提示错误

提示这段有错误 setcolor(LIGHTRED);/*define result words color*/
              错误 8.c 48: 非法字符 '? (0xa1)在 main 函数中

3 楼

不会吧,别人能运行呀!

4 楼

确实有错误。

5 楼

怎么我编译的时候没错,但连接的时候就有错呢?问题出在哪?高人请指教!

6 楼

用什么编译的啊?1

7 楼

估计要用vc呀

8 楼

动画太简单了吧

9 楼

c:\documents and settings\wch\桌面\4.cpp(1) : fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory
什么问题?
指教一下

10 楼

偶在Turbo c++ 下运行,出现25个错误!

我来回复

您尚未登录,请登录后再回复。点此登录或注册