本文主要详细介绍C语言实现的代码雨效果。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
本文分享C语言实现代码雨效果的具体代码,供大家参考。具体内容如下
一、项目描述和最终的效果展示
项目:让人物自上而下落下,呈现一场码雨。
最终效果图如下:
二、静态的代码雨
代码如下:
#includegraphics.h
#includetime.h
#includeconio.h
#定义高800//游戏画面
#定义宽度1000
#define CharSize 25//每个字符的显示大小
int main(void)
{
int High num=High/CharSize;
int Width num=Width/CharSize;
//CharRain将待输出字符的ASCII码存储在对应的字符矩阵中。
int char rain[Width/CharSize][High/CharSize];
int CNum[Width/CharSize];//每列中有效字符的数量
int i,j,x,y;
srand((无符号)时间(空));//设置随机函数种子
for(I=0;iwidthNumI )//初始化字符矩阵
{
CNum[I]=(rand()%(high num * 9/10))high num/10;//该列中有效字符的数量
for(j=0;jCNum[I];j)
char rain[j][I]=(rand()&)65;//生成A ~ Z的随机字符。
}
initgraph(宽度,高);
BeginBatchDraw();
setfont(25,10,' Courier ');//设置字体
setcolor(绿色);
for(I=0;iwidthNumI )//输出整个字符矩阵
{
x=i * CharSize//当前字符的x坐标
for(j=0;jCNum[I];j)
{
y=j * CharSize//当前字符的Y坐标
outtextxy(x,y,char rain[j][I]);//输出当前字符
}
}
FlushBatchDraw();
EndBatchDraw();
getch();
closegraph();
返回0;
}
效果图如下:
三、一场动态的代码雨
代码如下:
#includegraphics.h
#includetime.h
#includeconio.h
#定义高800//游戏画面
#定义宽度1000
#define CharSize 25//每个字符的显示大小
int main(void)
{
int High num=High/CharSize;
int Width num=Width/CharSize;
//CharRain将待输出字符的ASCII码存储在对应的字符矩阵中。
int char rain[Width/CharSize][High/CharSize];
int CNum[Width/CharSize];//每列中有效字符的数量
int i,j,x,y;
srand((无符号)时间(空));//设置随机函数种子
for(I=0;iwidthNumI )//初始化字符矩阵
{
CNum[I]=(rand()%(high num * 9/10))high num/10;//该列中有效字符的数量
for(j=0;jCNum[I];j)
char rain[j][I]=(rand()&)65;//生成A ~ Z的随机字符。
}
initgraph(宽度,高);
BeginBatchDraw();
setfont(25,10,' Courier ');//设置字体
setcolor(RGB(0,255,0));
while(1)
{
for(I=0;iwidthNum我)
{
If(CNum[i]highNum-1)//当该列字符未填充时
{
for(j=CNum[I]-1;j=0;j-)//每个字符下移一帧
{
char rain[j 1][I]=char rain[j][I];
}
char rain[0][I]=(rand()&)65;//最后一格再随机生成一个字符。
CNum[I]=CNum[I]1;//将该列中的字符数加1
}
}
for(I=0;iwidthNumI )//输出整个字符矩阵
{
x=i * CharSize//当前字符的x坐标
for(j=0;jCNum[I];j)
{
y=j * CharSize//当前字符的Y坐标
outtextxy(x,y,char rain[j][I]);//输出当前字符
}
}
FlushBatchDraw();
睡眠(200);
clearrectangle(0,0,Width-1,High-1);//清除屏幕
}
EndBatchDraw();
getch();
closegraph();
返回0;
}
效果图如下:
四、实现代码雨动画
代码如下:
#includegraphics.h
#includetime.h
#includeconio.h
#定义高800//游戏画面
#定义宽度1000
#define CharSize 25//每个字符的显示大小
int main(void)
{
int High num=High/CharSize;
int Width num=Width/CharSize;
//CharRain将待输出字符的ASCII码存储在对应的字符矩阵中。
int char rain[Width/CharSize][High/CharSize];
int CNum[Width/CharSize];//每列中有效字符的数量
int ColorG[Width/CharSize];//每列字符的颜色
int i,j,x,y;
srand((无符号)时间(空));//设置随机函数种子
for(I=0;iwidthNumI )//初始化字符矩阵
{
CNum[I]=(rand()%(high num * 9/10))high num/10;//该列中有效字符的数量
ColorG[I]=255;
for(j=0;jCNum[I];j)
char rain[j][I]=(rand()&)65;//生成A ~ Z的随机字符。
}
initgraph(宽度,高);
BeginBatchDraw();
setfont(25,10,' Courier ');//设置字体
while(1)
{
for(I=0;iwidthNum我)
{
If(CNum[i]highNum-1)//当该列字符未填充时
{
for(j=CNum[I]-1;j=0;j-)//每个字符下移一帧
{
char rain[j 1][I]=char rain[j][I];
}
char rain[0][I]=(rand()&)65;//最后一格再随机生成一个字符。
CNum[I]=CNum[I]1;//将该列中的字符数加1
}
其他
{
if(ColorG[i]40)
ColorG[I]=ColorG[I]-20;//让整列逐渐变暗
其他
{
CNum[I]=(rand()%(high num/3))high num/10;//此列中的字符数
ColorG[I]=(rand()u)180;//这一列字符的颜色
for(j=0;jCNum[I];J )//重新初始化该列字符
{
char rain[j][I]=(rand()&)65;
}
}
}
}
for(I=0;iwidthNumI )//输出整个字符矩阵
{
x=i * CharSize//当前字符的x坐标
for(j=0;jCNum[I];j)
{
y=j * CharSize//当前字符的Y坐标
setcolor(RGB(0,ColorG[i],0));
outtextxy(x,y,char rain[j][I]);//输出当前字符
}
}
FlushBatchDraw();
睡眠(100);
clearrectangle(0,0,Width-1,High-1);//清除屏幕
}
EndBatchDraw();
getch();
closegraph();
返回0;
}
效果图如下:
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。