📄 snowdown.c
字号:
/*简单的下雪场景*/
#include "Conio.h"
#define closegr closegraph
#include <stdlib.h>
#include <stdio.h>
#include<graphics.h>
struct Snow/*设置雪的一些参数*/
{
int x;
int y;
int speed;
}snow[100];
int snownum=0;/*雪的个数*/
int size;/*保存区域的大小*/
int change=100;/*变颜色*/
void *save1,*save2;/*保存空间*/
void Copy();/*保存区域*/
void DrawSnow();/*实现下雪*/
void Pr();/*输出图形*/
void main(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc"); /*图形初始化*/
Copy();
DrawSnow();
getch();
closegraph();/*关闭图形*/
}
void Copy()
{
setcolor(0);/*设置颜色*/
setfillstyle(SOLID_FILL,15);/*以实填充设置颜色为白色*/
fillellipse(200,200,4,4);/*画椭圆并填充*/
size=imagesize(196,196,204,204);/*求图形的大小 */
save1=malloc(size); /*开辟空间*/
save2=malloc(size);
getimage(196,196,204,204,save1);/*保存*/
getimage(96,96,104,104,save2);
}
void Pr()
{
setcolor(change/12);/*设置路的颜色*/
/*在屏幕上显示马路*/
line(310,4,230,610);
line(360,4,430,610);
setcolor(change/50);/*设置树的颜色*/
/*在屏幕上显示树*/
line(261,222,277,252);
line(268,211,280,232);
line(231,167,240,211);
line(240,211,266,184);
line(266,184,231,167);
line(250,200,247,236);
line(257,195,279,197);
line(247,236,279,197);
/*在屏幕上显示树*/
line(260,83,261,116);
line(261,116,284,87);
line(284,87,260,83);
line(268,109,269,134);
line(269,134,294,96);
line(294,96,276,98);
line(277,123,291,142);
line(294,123,285,110);
/*在屏幕上显示树*/
line(196,302,198,356);
line(198,356,232,322);
line(232,322,196,302);
line(210,346,205,387);
line(205,387,257,340);
line(257,340,220,334);
line(226,371,257,422);
line(261,395,237,358);
/*在屏幕上显示树*/
line(404,56,386,51);
line(386,51,397,75);
line(397,75, 404,56);
line(387,57,375,50);
line(375,50,392,92);
line(392,92,394,71);
line(382,67,371,79);
line(387,77,373,94);
/*在屏幕上显示树*/
line(441,181,412,173);
line(412,173,436,219);
line(436,219,441,181);
line(420,192,396,171);
line(396,171,427,244);
line(427,244,428,211);
line(409,206,387,233);
line(390,250,416,222);
/*在屏幕上显示树*/
line(476,296,440,280);
line(440,280,474,343);
line(474,343,476,296);
line(452,304,413,277);
line(413,277,466,381);
line(466,381,460,321);
line(438,327,402,375);
line(407,394,445,341);
setcolor(change/7);/*设置人的颜色*/
/*在屏幕上显示人*/
circle(313,257,7);
line(313,263,312,287);
line(312,287,298,304);
line(312,287,323,301);
line(312,273,300,283);
line(312,273,329,282);
/*在屏幕上显示人*/
circle(345,251,8);
line(345,258,346,284);
line(346,284,335,305);
line(346,284,358,307);
line(346,270,329,282);
line(346,270,366,282);
setbkcolor(change/11);/*屏幕的背景颜色*/
}
void DrawSnow()
{int i;
int sx[62];
randomize(); /*初始化随机数发生器*/
for(i=0;i<62;i++)
sx[i]=(i+2)*10;
cleardevice(); /*清除图形屏幕*/
while(!kbhit()) /*按任意键退出*/
{
Pr();
if(snownum!=100)
{
snow[snownum].speed=2+random(5);/*产生雪的速度为2~7个*/
i=random(62);
snow[snownum].x=sx[i];
snow[snownum].y=10-random(100);
}
for(i=0;i<snownum;i++)/*去雪*/
putimage(snow[i].x,snow[i].y,save2,COPY_PUT);/*在屏幕上输出图形*/
Pr();
if(snownum!=100)
snownum++ ;
delay(300);/*将程序的执行暂停300毫秒*/
setfillstyle(SOLID_FILL,15);/*画雪*/
for(i=0;i<snownum;i++)
{
snow[i].y+=snow[i].speed;
putimage(snow[i].x,snow[i].y,save1,COPY_PUT);/*在屏幕上输出图形*/
if(snow[i].y>500)
snow[i].y=10-random(200);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -