C語言實現 全屏字符下滑動畫效果

大家好 , 我是逼哥 , 記得每天好好學習 , 天天向上 , 尤其是大學生 . 不要荒廢學業.

首先說明 , 我使用的開發環境是  vs2017  , 有些函數方法可能不通用 ,大家可以百度下其他方法. 向童老師致敬.

 

先給你們看看實際效果:

 

貼出實現的代碼:

#include <graphics.h>
#include <time.h>
#include <conio.h>

#define High 800  // 遊戲畫面尺寸
#define Width 1000
#define CharSize 25 // 每個字符顯示的大小
void main()
{
	int highNum = High / CharSize;
	int widthNum = Width / CharSize;
	// 存儲對應字符矩陣中需要輸出字符的ASCII碼
	int CharRain[Width / CharSize][High / CharSize];
	int CNum[Width / CharSize]; // 每一列的有效字符個數
	int ColorG[Width / CharSize]; // 每一列字符的顏色
	int i, j, x, y;
	srand((unsigned)time(NULL)); // 設置隨機函數種子
	for (i = 0; i<widthNum; i++) // 初始化字符矩陣
	{
		CNum[i] = (rand() % (highNum * 9 / 10)) + highNum / 10; // 這一列的有效字符個數
		ColorG[i] = 255;
		for (j = 0; j<CNum[i]; j++)
			CharRain[j][i] = (rand() % 26) + 65;  // 產生A-Z的隨機ASCII碼
	}
	initgraph(Width, High);
	BeginBatchDraw();
	settextstyle(25, 10, _T("Courier"));	// 設置字體
								// 下面每一幀,讓字符向下移動,然後最上面產生新的字符
	while (1)
	{
		for (i = 0; i<widthNum; i++)
		{
			if (CNum[i]<highNum - 1)  // 當這一列字符沒有填滿時
			{
				for (j = CNum[i] - 1; j >= 0; j--)  // 向下移動一格
					CharRain[j + 1][i] = CharRain[j][i];
				CharRain[0][i] = (rand() % 26) + 65;  // 最上面的產生A-Z的隨機ASCII碼
				CNum[i] = CNum[i] + 1; // 這一列的有效字符的個數+1
			}
			else // 這一列字符已經填滿
			{
				if (ColorG[i]>40)
					ColorG[i] = ColorG[i] - 20; // 讓滿的這一列逐漸變暗
				else
				{
					CNum[i] = (rand() % (highNum / 3)) + highNum / 10; // 這一列字符的個數
					ColorG[i] = (rand() % 75) + 180;  // 這一列字符的顏色
					for (j = 0; j<CNum[i]; j++)  // 重新初始化這一列字符
						CharRain[j][i] = (rand() % 26) + 65;  // 產生A-Z的隨機ASCII碼
				}
			}
		}
		// 輸出整個字符矩陣
		for (i = 0; i<widthNum; i++)
		{
			x = i * CharSize; // 當前字符的x座標
			for (j = 0; j<CNum[i]; j++)
			{
				y = j * CharSize;  // 當前字符的y座標
				setcolor(RGB(0, ColorG[i], 0));
				outtextxy(x, y, CharRain[j][i]); // 輸出當前字符
			}
		}
		FlushBatchDraw();
		Sleep(100);
		clearrectangle(0, 0, Width - 1, High - 1);	// 清空畫面全部矩形區域
	}
	EndBatchDraw();
	_getch();
	closegraph();
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章