教你写C语言入门新手也能轻松实现的黑客帝国代码雨特效

教你写C语言入门新手也能轻松实现的黑客帝国代码雨特效

首页模拟经营代号帝国更新时间:2024-04-26

黑客帝国的代码雨特效曾经惊艳了很多人。其实,这个效果用C语言实现也是非常容易的。即便是一个C语言入门新手,也可以轻松实现,全部代码只有三十行,如果你是一个入门新手,仔细阅读本文,马上可以上手展现自己的成果。

我们先看一下最终实现的效果图片,我们实现了红色的代码雨效果。

红色代码雨

我们将任务分解一下,其实也只有两项。

1.实现随机文字竖排连续显示。

2.实现文字颜色渐隐。

下面我们分别来实现两个需求。

要实现文字竖排连续显示,可以将显示字符列看成一个数组。数组成员初始化为随机值,然后将成员值进行递减。再根据当前值的大小,决定是否显示字符。成员随机值的大小和显示阈值。决定显示画面的稀疏。我们假定显示阈值是16,低于16就显示字符。高于16就显示空格。随机值最高为80。下面是实现文字竖排连续显示的代码。

char *text="abcdefghijklmnopqrstuvwxyz";//显示的字母表 int row[100]={0};//设定显示列为100列,全部初始化为0 int i; srand(time(NULL));//初始化随机数 while(1) { for(i=0;i<100;i ) { if(--row[i]<0)//不停的递减,小于0就重新初始化 row[i]=rand()?;//成员值为80以下的随机数 if(row[i]<16)//成员值小于16,则显示字符,否则显示空格 printf("%C",text[rand()&]);//显示一个随机字符 else printf(" ");//显示一个空格 } printf("\n");//显示完一行,强制换行 Sleep(50);//添加延时,控制速度 }

完成了随机文字竖排显示,我们下面要解决的就是文字颜色渐隐效果了。我们的代码在Windows下编译。运行的环境是MS-DOS平台。DOS只能显示16位颜色,设定文字颜色只能设定0-15的索引值。但MS-DOS给我们提供了修改颜色表的API ,我们要做的就是利用API修改颜色表,将16个索引颜色设定为红色由浅到深的过渡颜色。代码如下:

#include <Windows.h> //调用 Windows API要包含Windows.h头文件 CONSOLE_SCREEN_BUFFER_INFOEX info; //控制台屏幕缓冲信息结构 HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台句柄 info.cbSize=sizeof(info); //这个结构大小必须填写,否则后面API调用会出错 if(GetConsoleScreenBufferInfoEx(hConsole,&info))//获取屏幕缓冲结构信息 { int i; for(i=0;i<16;i )//填充16个索引色 info.ColorTable[i]=RGB(17*i,0,0);//将红色进行16等分,每一个梯度变化为17 SetConsoleScreenBufferInfoEx(hConsole,&info);//修改索引色 }

修改完索引色,我们只需要在每次显示字符的时候,使用API修改字符颜色为指定的索引值。

if(row[i]<16)//成员值小于16,显示字符 { SetConsoleTextAttribute(hConsole,row[i]);//修改字符颜色为索引值 printf("%C",text[rand()&]);//显示随机字符 }

看懂的小伙伴可以将代码组合起来,就可以实现我们需要的效果,修改不同的颜色表,可以生成不同颜色的代码雨。如有不太明白的,可以在评论区讨论。

浅蓝色代码雨

绿色代码雨

黄色代码雨

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved