#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);
}
C++实现黑客代码雨效果
需积分: 0 57 浏览量
更新于2023-05-30
1
收藏 34.47MB ZIP 举报
该文件利用C++以及easyx图形库(如果您不了解easyx图形库,建议先去学习一下其基本知识,不然代码可能有些难理解)实现了一个代码雨的效果。文件中包含了安装包,有兴趣的朋友可以在电脑上安装或是分享给自己的好朋友,希望大家能感受到代码带来的美感以及分享的快乐。此外,代码的编写主要采用了C语言中的结构体,如果您会C++,可以利用C++中类与对象的知识改进代码,相信这会增加您对这份文件的理解与思考。
(注:在使用本资源时,请利用Visual Studio运行该文件,此外,该文件的运行还需要easyx图形库,所以在运行前请先安装好easyx图形库并检查是否能正常使用。请不要使用其他编译器运行该文件,否则会出错)
![avatar](https://profile-avatar.csdnimg.cn/a0b959bc9be041dd8dbf89c84347ce95_2301_76244254.jpg!1)
边城仔
- 粉丝: 584
- 资源: 4
最新资源
- 【JCR一区级】秃鹰算法BES-Transformer-GRU负荷数据回归预测【含Matlab源码 6347期】.zip
- 【独家首发】开普勒算法KOA优化Transformer-BiLSTM负荷数据回归预测【含Matlab源码 6560期】.zip
- 【JCR一区级】雾凇算法RIME-Transformer-GRU负荷数据回归预测【含Matlab源码 6348期】.zip
- 【JCR1区】雪融算法SAO-CNN-SVM故障诊断分类预测【含Matlab源码 5823期】.zip
- 【JCR1区】蚁狮算法ALO-CNN-SVM故障诊断分类预测【含Matlab源码 5825期】.zip
- 【JCR一区级】鹈鹕算法POA-Transformer-GRU负荷数据回归预测【含Matlab源码 6345期】.zip
- 【JCR一区级】金豺算法GJO-Transformer-GRU负荷数据回归预测【含Matlab源码 6326期】.zip
- 【JCR一区级】天鹰算法AO-Transformer-GRU负荷数据回归预测【含Matlab源码 6346期】.zip
- 【LSTM时序预测】鲸鱼算法优化卷积长短期记忆神经网络WOA-CNN-LSTM股价序列预测【含Matlab源码 3008期】.zip
- 【独家首发】粒子群算法PSO优化Transformer-LSTM负荷数据回归预测【含Matlab源码 6388期】.zip
- 【JCR1区】遗传算法GA-CNN-SVM故障诊断分类预测【含Matlab源码 5824期】.zip
- 【JCR1区】飞蛾扑火算法MFO-CNN-SVM故障诊断分类预测【含Matlab源码 5784期】.zip
- 【JCR1区】引力搜索算法GSA-CNN-SVM故障诊断分类预测【含Matlab源码 5826期】.zip
- 【JCR一区级】金枪鱼算法TSO-Transformer-GRU负荷数据回归预测【含Matlab源码 6327期】.zip
- 【JCR一区级】鲸鱼算法WOA-Transformer-GRU负荷数据回归预测【含Matlab源码 6328期】.zip
- 【JCR一区级】淘金算法GRO-Transformer-GRU负荷数据回归预测【含Matlab源码 6344期】.zip