就是获取时间,便于控制时间间隔,
具体效果请大家参考下面的代码
代码雨
#include<stdio.h> #include<graphics.h> #include<conio.h> #include<time.h> #include<mmsystem.h> #pragma comment(lib,"winmm.lib") void music()//音乐 { mciSendString("open 卡农狂欢.mp3", 0, 0, 0); mciSendString("play 卡农狂欢.mp3", 0, 0, 0); } struct Rain { int x; int y; }; const int rainNum = 40;//雨水数量 struct Rain rains[rainNum]; //初始化雨水 void initRain() { for (int i = 0; i < rainNum; i++) { rains[i].x = rand() % 640;//随机数在0-639 rains[i].y = rand() % 480;//随机数在0-479 //防止超过initgraph的范围 } } //画雨 void drawRain(int n) { //每滴雨水6个字符竖排 for (int i = 0; i < 6; i++) { unsigned int greenValue = 255 - i * 40; settextcolor(RGB(0, 255, 0));//颜色 outtextxy(rains[n].x, rains[n].y-i*20, rand() % 2 + 48);//打印0或1 +48是ASCII值(看一下1,0的ASCII表) } } //下雨 void downRain() { for (int i = 0; i < rainNum; i++) { drawRain(i);//下雨 rains[i].y += 5;//往下掉 if (rains[i].y > 600) { rains[i].x = rand() % 640; rains[i].y = rand() % 50 - 70; } } } int main() { srand((unsigned)time(0));//随机数 initgraph(640, 480); initRain();//自己弄的下雨范围函数 music();//自己弄一个音乐函数 BeginBatchDraw();//开始批量绘图 DWORD t1, t2;//计算时间差20ms画一次 t1 = GetTickCount();//获取时间 while (1) { t2 = GetTickCount();//获取时间 if (t2 - t1 > 20)//如果时间差>20ms { cleardevice(); downRain();//自己弄的下雨函数 EndBatchDraw(); t1 = t2;//恢复初始情况,便于循环 } } _getch();//等待你按一个键,头文件是conio.h return 0; }
🚥🚥🚥效果
Code over!