⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme- c03.txt

📁 飞船飞过地球的动画程序
💻 TXT
字号:
#include<graphics.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define IMAGE_SIZE 10
void draw_image(int x,int y);
void Putstar(void);
main()
{
 int graphdriver=DETECT;
int graphmode ,color;
void *pt_addr;
int x,y,maxx,maxy,midy,midx,i;
unsigned in size;
registerbgidriver(EGAVEA_driver);
registerbgifont(TRIPLEX_FONT);
initgraph(&graphdriver,&graphmode,"d:\tc\bgi");
maxx=getmaxx();/*取允许的最大x值*/
maxy=getmaxy();/*取允许的最大y值*/
midx=maxx/2;
x=0;
midy=y=maxy/2;
setcolor(YELLOW);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(midx,400,"AROUND THE WORLD");
setbkcolor(BLACK);
setcolor(RED);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
ellipse(midx,midy,130,50,160,30);
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
draw_image(x,y);/*画飞船*/
size=imagesize(x,y-IMAGE_SIZE,x+(4*IMAGE_SIZE),y+IMAGE_SIZE);
pt_addr=malloc(size);
getimage(x,y-IMAGE_SIZE,x+(4*IMAGE_SIZE),y+IMAGE_SIZE,pt_addr);
Putstar();/*画星*/
setcolor(WHITE);
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
rectangle(0,0,maxx,maxy);/*画方框*/
while(!bkhit())
{
   Putstar();
   setcolor(RED);
  setlinestyle(SOLID_LINE,0,THICK_WIDTH);
  ellipse(midx,midy,130,50,160,30);
  setcolor(BLACK);/*画一个围绕地球的光环*/
  ellipse(midx,midy,130,50,160,30);
  for(i=0;i<13;i++)
       {
          setcolor(i%2==0?LIGHTBLUE:BLACK);
         ellipse(midx,midy,0,360,100,100-8*i);/*画地球*/
         setcolor(LIGHTBLUE);
        ellipse(midx,midy,0,360,100-8*i,100);
       }
putimage(x,y-IMAGE_SIZE,pt_addr,XOR_PUT);/*恢复原画面*/
x=x>maxx?0:x+6;
putimage(x,y-IMAGE_SIZE,pt_addr,XOR_PUT);/*在另一 位置显示飞船*/
}
free(pt_addr);/*释放缓冲区*/
closegraph();
return;
}



void draw_image(int x,int y)/*画飞船*/
{
   int arw[11];
   arw[0]=x+10;
    arw[1]=y-10;
    arw[2]=x+34;
    arw[3]=y-6;
 arw[4]=4+34;
 arw[5]=y+6;
 arw[6]=x+10;
 arw[7]=y+10;
 arw[9]=x+10;
 arw[10]=y-10;
moveto(x-10,y-4);
setcolor(14);
setfillstyle(1,4);
linerel(-3*10,-2*8);/*画尾部天线*/
moveto(x+10,y+4);
linerel(-3*10,-2*8);
moveto(x+10,y);
linerel(-3*10,0);
setcolor(3);
setfillstyle(1,LIGHTBLUE);
fillpoly(4,arw);/*画飞船本体*/
}



void Putstar(void)
{
int seed=1858;
int i,dotx,doty,h,w,color,maxcolor;
maxcolor=getmaxcolor();/*得到当前模式和最多颜色数*/
w=getmaxx();
h=getmaxy();
srand(seed);
for(i=0;i<250;++i)
{
dotx=i=random(w-1);
doty=1+random(h-1);
color=random(maxcolor);
setcolor(color);
putpixel(dotx,doty,color);/*用点表示小星*/
circle(dotx+1,doty+1,1);/*用圆表示大星*/
}
srand(seed);
}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -