c语言动画-《月亮和鸟》
#include "Conio.h" #include "graphics.h" #include <stdio.h> #include <stdlib.h> #include <dos.h> int MouseX; int MouseY; void initgr(void) {int gd=DETECT,gm=0;
registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,""); }
/*鼠标光标显示*/ void MouseOn() { _AX=0x01; geninterrupt(0x33); }
/*鼠标光标掩示*/ void MouseOff()/*鼠标光标隐藏*/ { _AX=0x02; geninterrupt(0x33); } void MouseSetXY(int x,int y)/*设置当前位置*/ { _CX=x; _DX=y; _AX=0x04; geninterrupt(0x33); } int LeftPress()/*左键按下*/ { _AX=0x03; geninterrupt(0x33); return(_BX&1); } void MouseGetXY()/*得到当前位置*/ { _AX=0x03; geninterrupt(0x33); MouseX=_CX; MouseY=_DX; }
main() {int i; int x,y; int s=2; int a=100,b=100; int c=300,d=150; initgr(); x=500; y=50;
for(;!kbhit();) {
putpixel(200,50,WHITE); putpixel(300,65,WHITE); putpixel(50,80,WHITE); /***************************星*********************/
setcolor(1); ellipse(320,180,0,180,320,40); setfillstyle(1,1); floodfill(320,250,1);/**************海*********************/
setcolor(8); ellipse(0,480,0,90,500,180); setfillstyle(1,8); floodfill(10,450,8);/********************地*********************/
setcolor(BROWN); ellipse(50,300,270,90,10,50); line(80,350,80,220); ellipse(65,250,0,360,40,50); setfillstyle(11,BROWN); floodfill(80,285,BROWN); floodfill(65,299,BROWN); floodfill(55,290,BROWN); ellipse(60,350,100,80,40,25); /****************树*********************/
for(;x>100&&!kbhit();) { for(i=0;i<1&&c<2;i++) { c=c-1; setcolor(8); ellipse(c,d,0,360,16,4); line(c+4,d+2,c+4,d-2); line(c-4,d+2,c-4,d-2); circle(c,d-8,2); line(c,d-6,c,d); line(c,d-2,c-8,d+8); line(c,d-2,c-8,d-8); setfillstyle(1,8); floodfill(c,d-8,8);
setfillstyle(11,8); floodfill(c-6,d,8);/***左舱****/
setfillstyle(11,8); floodfill(c+5,d,8);/***右舱****/
}/*********boat**********/ delay(60); setcolor(0); ellipse(c,d,0,360,16,4); line(c+4,d+2,c+4,d-2); line(c-4,d+2,c-4,d-2); circle(c,d-8,2); line(c,d-6,c,d); line(c,d-2,c-8,d+8); line(c,d-2,c-8,d-8); setfillstyle(1,0); floodfill(c,d-8,0);
setfillstyle(11,0); floodfill(c-6,d,0);/***左舱****/
setfillstyle(11,0); floodfill(c+5,d,0);/***右舱****/
x--; setcolor(YELLOW); circle(x,y,30); setfillstyle(1,YELLOW); floodfill(x,y,YELLOW);
if(a>640) a=0; a=a+10; setcolor(RED); ellipse(a,b,0,180,10,5); ellipse(a+20,b,0,180,10,5); line(a+5,b,a+12,b);/***************鸟******************/
delay(60000);
setcolor(0); ellipse(a,b,0,180,10,5); ellipse(a+20,b,0,180,10,5); line(a+5,b,a+12,b);
circle(x+2,y,30); setfillstyle(1,0); floodfill(x+2,y,0); } /*****************月亮*****************/
} }