#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 11 浏览量
更新于2023-05-30
1
收藏 34.47MB ZIP 举报
该文件利用C++以及easyx图形库(如果您不了解easyx图形库,建议先去学习一下其基本知识,不然代码可能有些难理解)实现了一个代码雨的效果。文件中包含了安装包,有兴趣的朋友可以在电脑上安装或是分享给自己的好朋友,希望大家能感受到代码带来的美感以及分享的快乐。此外,代码的编写主要采用了C语言中的结构体,如果您会C++,可以利用C++中类与对象的知识改进代码,相信这会增加您对这份文件的理解与思考。
(注:在使用本资源时,请利用Visual Studio运行该文件,此外,该文件的运行还需要easyx图形库,所以在运行前请先安装好easyx图形库并检查是否能正常使用。请不要使用其他编译器运行该文件,否则会出错)
边城仔
- 粉丝: 544
- 资源: 4
最新资源
- 毕业设计-基于选题管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于行人检测系统,pyqt + opencv全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于一个简化的物联网系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于学生管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于学生成绩管理分析系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于疫情管理系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于云笔记系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于医院预约挂号系统(期末项目)全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于主动学习推荐系统的实现全部资料+详细文档+高分项目+源码.zip
- 使用Python代码生成文本圣诞树图案
- 毕业设计-基于主机安全态势感知系统全部资料+详细文档+高分项目+源码.zip
- 毕业设计-基于智慧工地监控管理系统全部资料+详细文档+高分项目+源码.zip
- 基于对人脸识别技术开发现状的研究和分析,本文利用图像处理技术、课堂考勤系统的作用为督促学生参与到课堂教学中,让学生能够更好学习相关知识。传统的课堂教学采用课堂点
- Windows系统下Python及开发工具的详细安装指南
- HTML5实现好看的无人机监控介绍网站模板.zip
- HTML5实现好看的网上家具商城网站模板.zip