#include<iostream>
using namespace std;
#include<easyx.h>
#include<graphics.h>
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<mmsystem.h>
#pragma comment(lib,"winmm.lib")
#define SIZE 25 //每一条数字的数量
#define SUM 80 //条的总数
#define DISTANCE 18 //每条之间的间隔
#define WIDTH 1024 //窗口宽度
#define HEIGHT 640 //窗口高度
int status=0; //用来判断是否是最开始的时候
struct Rain {
int x, y; //x坐标与y坐标
int speed; //下降速度
int num[SIZE]; //数字数组
}rain[SUM];
void Init(); //初始化所有条数
void Draw(); //绘制
void Move(); //移动
void BGM(); //背景音乐
int main() {
initgraph(WIDTH, HEIGHT);
BGM();
Init();
Draw();
while (1) {
BeginBatchDraw();
cleardevice();
Move();
Init();
Draw();
EndBatchDraw();
};
return 0;
}
//初始化所有条数
void Init() {
srand((unsigned)time(NULL));//设置主函数种子
//初始化坐标以及速度
for (int i = 0; i < SUM; i++) {
rain[i].x = i * DISTANCE;
if (status == 0) {
rain[i].y = rand() % (HEIGHT-400);
}
rain[i].speed = rand() % 5 + 4;
}
if (status == 0) {
status = 1;
}
//初始化数字
for (int i = 0; i < SUM; i++) {
for (int j = 0; j < SIZE; j++) {
rain[i].num[j] = rand() % 10;
//cout << rain[i].num[j];
}
//cout << endl;
}
}
//绘制
void Draw() {
for (int i = 0; i < SUM; i++) {
for (int j = 0; j < SIZE; j++) {
char str[5];
sprintf(str, "%d", rain[i].num[j]);
int g = 0;
settextcolor(RGB(0, g + (j * 8), 0));
outtextxy(rain[i].x, rain[i].y+(j*15), str);
}
}
}
//y坐标移动
void Move() {
for (int i = 0; i < SUM; i++) {
rain[i].y += rain[i].speed;
if (rain[i].y > HEIGHT) {
rain[i].y = -rand() % (HEIGHT + 300);
}
}
}
void BGM() {
mciSendString("open ./music.mp3", 0, 0, 0);
mciSendString("play ./music.mp3 repeat", 0, 0, 0);
}
边城仔
- 粉丝: 525
- 资源: 4
最新资源
- dsfdfdfefdfgfhgj
- 基于统计学的时间序列预测(AR,ARM) -洗发水销售研究、每日女性出生研究、时间序列预测的基线预测、法国香槟的月销售额
- 2023年中国数字经济规模已攀升至53.9万亿元,引领数字化服务革命
- Winform DataGridView 控件分页控件,上/下一页,跳转(附下载链接)
- 聊天交友短视频直播手机APP应用下载落地页html源码
- 计算机网络习题及参考答案
- Windows环境下的VMware Workstation虚拟机软件安装指南
- 最全交通灯检测数据集下载
- VMware虚拟机中NAT网络配置与CentOS系统安装指南实现虚拟机访问外网
- 网络安全2.0等级保护,二三级基本要求对比
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈