C語言+EasyX實現(xiàn)數(shù)字雨效果
更新時間:2020年08月18日 10:16:30 作者:這個好玩嗎
這篇文章主要為大家詳細(xì)介紹了C語言+EasyX實現(xiàn)數(shù)字雨效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言 EasyX實現(xiàn)數(shù)字雨的具體代碼,供大家參考,具體內(nèi)容如下
/////////////////////////////////////////////////////////////////////
// 程序名稱:數(shù)字雨
// 編譯環(huán)境: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 //雨的列數(shù)
//數(shù)字雨開始的位置
int g_nRainPos[DEF_RAIN_NUM] = { 0 };
//數(shù)字雨的字符串
char g_strRain[DEF_RAIN_NUM][10] = { 0 };
//隨機產(chǎn)生一個字母
char CreateRandomNum() {
char nRandomNum = 0;
while( 1 ) {
nRandomNum = rand() % 123; //隨機產(chǎn)生0~122的一個字符
if( ( nRandomNum >= 65 && nRandomNum <= 90 ) || nRandomNum >= 97 ) {
return nRandomNum;
}
}
}
//隨機產(chǎn)生數(shù)字雨的開始位置
void InitPos() {
for( int i = 0; i < DEF_RAIN_NUM; i++ ) {
g_nRainPos[i] = rand() % SCREEN_HEIGHT;
}
}
//初始化數(shù)字雨
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++ ) {
//設(shè)置字體顏色
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;
}
效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解C++中const_cast與reinterpret_cast運算符的用法
這篇文章主要介紹了C++中const_cast與reinterpret_cast運算符的用法,經(jīng)常被用于表達(dá)式中的類型轉(zhuǎn)換,需要的朋友可以參考下2016-01-01
vscode遠(yuǎn)程連接服務(wù)器(免密登錄+遠(yuǎn)程開發(fā))
vscode的遠(yuǎn)程連接功能十分方便,本文就來介紹一下vscode遠(yuǎn)程連接服務(wù)器,主要包括免密登錄和遠(yuǎn)程開發(fā),感興趣的可以了解一下2024-07-07
C語言創(chuàng)建和操作單鏈表數(shù)據(jù)結(jié)構(gòu)的實例教程
這篇文章主要介紹了C語言創(chuàng)建和操作單鏈表數(shù)據(jù)結(jié)構(gòu)的實例教程,講解使用C語言實現(xiàn)鏈表結(jié)構(gòu)時指針的使用,需要的朋友可以參考下2016-04-04
C語言數(shù)據(jù)類型與sizeof關(guān)鍵字
這篇文章主要介紹了C語言數(shù)據(jù)類型與sizeof關(guān)鍵字,C語言的數(shù)據(jù)類型包括基本類型、構(gòu)造類型、指針類型以及空類型,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-04-04
C++函數(shù)pyrUp和pyrDown來實現(xiàn)圖像金字塔功能
這篇文章主要介紹了C++函數(shù)pyrUp和pyrDown來實現(xiàn)圖像金字塔功能,如何使用OpenCV函數(shù) pyrUp 和 pyrDown 對圖像進(jìn)行向上和向下采樣,需要的朋友可以參考下2017-03-03

