本文实例为大家分享了C语言 EasyX实现数字雨的具体代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 程序名称:数字雨 / / 编译环境:VC6. 0 EasyX / / 作 者:flx413 / / 时 间: 2016 - 5 - 2 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / #include <stdio.h> #include <windows.h> #include <graphics.h> #include <stdlib.h> #include <time.h> #define SCREEN_WIDTH 1366 #define SCREEN_HEIGHT 768 #define DEF_RAIN_NUM 91 //雨的列数 / / 数字雨开始的位置 int g_nRainPos[DEF_RAIN_NUM] = { 0 }; / / 数字雨的字符串 char g_strRain[DEF_RAIN_NUM][ 10 ] = { 0 }; / / 随机产生一个字母 char CreateRandomNum() { char nRandomNum = 0 ; while ( 1 ) { nRandomNum = rand() % 123 ; / / 随机产生 0 ~ 122 的一个字符 if ( ( nRandomNum > = 65 && nRandomNum < = 90 ) || nRandomNum > = 97 ) { return nRandomNum; } } } / / 随机产生数字雨的开始位置 void InitPos() { for ( int i = 0 ; i < DEF_RAIN_NUM; i + + ) { g_nRainPos[i] = rand() % SCREEN_HEIGHT; } } / / 初始化数字雨 void InitNumRain() { for ( int i = 0 ; i < DEF_RAIN_NUM; i + + ) { for ( int j = 0 ; j < 10 ; j + + ) { g_strRain[i][j] = CreateRandomNum(); } } } / / 显示雨 void ShowNumRain() { for ( int i = 0 ; i < DEF_RAIN_NUM; i + + ) { / / 设置字体颜色 settextcolor( RGB( 255 , 255 , 255 ) ); / / 白色 for ( int j = 0 ; j < 10 ; j + + ) { outtextxy( i * 15 , g_nRainPos[i] - 15 * j, g_strRain[i][j] ); settextcolor( RGB( 0 , 255 - 28 * j, 0 ) ); } } for ( i = 0 ; i < DEF_RAIN_NUM; i + + ) { g_nRainPos[i] + = 15 ; / / 屏幕刷新后雨的位置下降 15 } for ( i = 0 ; i < DEF_RAIN_NUM; i + + ) { if ( g_nRainPos[i] - 10 * 15 > = SCREEN_HEIGHT ) { g_nRainPos[i] = 0 ; } } } int main() { srand((unsigned)time(NULL)); initgraph( SCREEN_WIDTH, SCREEN_HEIGHT ); InitPos(); InitNumRain(); BeginBatchDraw(); while ( 1 ) { InitNumRain(); ShowNumRain(); FlushBatchDraw(); Sleep( 100 ); / / 延时 0.1 秒 cleardevice(); / / 清空屏幕 } EndBatchDraw(); closegraph(); return 0 ; } |
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/flx413/article/details/52014008