C语言实现代码雨效果

本文实例为大家分享了C语言实现代码雨效果的具体代码,供大家参考,具体内容如下

一、项目描述和最终的效果展示

项目:   让字符从上到下依次的下落,呈现出代码雨。

最终效果图如下所示:

二、静态的代码雨

代码如下:

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

#define High 800//游戏画面
#define Width 1000
#define CharSize 25//每个字符显示的大小

int main(void)
{
    int highNum=High/CharSize;
    int widthNum=Width/CharSize;

    //CharRain存储对应字符矩阵中需要输出字符的ASCII码
    int CharRain[Width/CharSize][High/CharSize];
    int CNum[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;//这一列的有效字符个数
        for(j=0;j<CNum[i];j++)
            CharRain[j][i]=(rand()%26)+65;//产生A~Z的随机字符
    }

    initgraph(Width,High);
    BeginBatchDraw();
    setfont(25,10,"Courier");//设置字体
    setcolor(GREEN);

    for(i=0;i<widthNum;i++)//输出整个字符矩阵
    {
        x=i*CharSize;//当前字符的x坐标
        for(j=0;j<CNum[i];j++)
        {
            y=j*CharSize;//当前字符的y坐标
            outtextxy(x,y,CharRain[j][i]);//输出当前字符
        }
    }
    FlushBatchDraw();
    EndBatchDraw();
    getch();
    closegraph();
    return 0;
}

效果图如下:

三、一场动态的代码雨

代码如下:

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

#define High 800//游戏画面
#define Width 1000
#define CharSize 25//每个字符显示的大小

int main(void)
{
    int highNum=High/CharSize;
    int widthNum=Width/CharSize;

    //CharRain存储对应字符矩阵中需要输出字符的ASCII码
    int CharRain[Width/CharSize][High/CharSize];
    int CNum[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;//这一列的有效字符个数
        for(j=0;j<CNum[i];j++)
            CharRain[j][i]=(rand()%26)+65;//产生A~Z的随机字符
    }

    initgraph(Width,High);
    BeginBatchDraw();
    setfont(25,10,"Courier");//设置字体
    setcolor(RGB(0,255,0));

    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;//最上一格再重新随机的产生一个字符
                CNum[i]=CNum[i]+1;//这一列的字符数加1
            }
        }
        for(i=0;i<widthNum;i++)//输出整个字符矩阵
        {
            x=i*CharSize;//当前字符的x坐标
            for(j=0;j<CNum[i];j++)
            {
                y=j*CharSize;//当前字符的y坐标
                outtextxy(x,y,CharRain[j][i]);//输出当前字符
            }
        }
        FlushBatchDraw();
        Sleep(200);
        clearrectangle(0,0,Width-1,High-1);//清空画面
    }
    
    EndBatchDraw();
    getch();
    closegraph();
    return 0;
}

效果图如下:

四、实现代码雨动画

代码如下:

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

#define High 800//游戏画面
#define Width 1000
#define CharSize 25//每个字符显示的大小

int main(void)
{
    int highNum=High/CharSize;
    int widthNum=Width/CharSize;

    //CharRain存储对应字符矩阵中需要输出字符的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的随机字符
    }

    initgraph(Width,High);
    BeginBatchDraw();
    setfont(25,10,"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;//最上一格再重新随机的产生一个字符
                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;
                    }
                }
            }
        }
        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();
    return 0;
}

效果图如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现数字雨效果

    本文实例为大家分享了C语言实现数字雨效果展示的具体代码,供大家参考,具体内容如下 #include <windows.h> #include <windowsx.h> #define ID_TIMER 1 #define STRMAXLEN 25 //一个显示列的最大长度 #define STRMINLEN 8 //一个显示列的最小长度 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; /////////////////

  • C语言实现流星雨效果流程

    目录 一.头文件 二.结构体 三.初始化 四.绘制函数 五.移动函数 六.界面设计 七.主函数 总结 视频讲解 感谢 序 再亮眼的流星,也会一闪而过. 嗨!这里是狐狸~~ 没错,我又来了,上次的"烟花"表白程序你学废了吗,这次我次我又来给大家支招啦,学会了"烟花",我们一起来看"流星雨"吧!!! 直接上界面 上次忘记说了,因为我们是用C语言写的所以是控制台程序,创造不出来界面,那怎么办呢,我们就要用Windows的远房表亲EasyX图形库来建界面

  • C语言+EasyX实现数字雨效果

    本文实例为大家分享了C语言 EasyX实现数字雨的具体代码,供大家参考,具体内容如下 ///////////////////////////////////////////////////////////////////// // 程序名称:数字雨 // 编译环境:VC6.0 EasyX // 作 者:flx413 // 时 间:2016-5-2 ///////////////////////////////////////////////////////////////////// #incl

  • C语言实现代码雨效果

    本文实例为大家分享了C语言实现代码雨效果的具体代码,供大家参考,具体内容如下 一.项目描述和最终的效果展示 项目:   让字符从上到下依次的下落,呈现出代码雨. 最终效果图如下所示: 二.静态的代码雨 代码如下: #include<graphics.h> #include<time.h> #include<conio.h> #define High 800//游戏画面 #define Width 1000 #define CharSize 25//每个字符显示的大小 i

  • HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)

    我们先看看HTML+JS实现"代码雨"的最终效果 1.绿色: 2.彩色: 3.背景色: 4.绿色逐渐变浅: 源代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>Code -by ZhenYu.Sha</title>

  • JavaScript canvas实现代码雨效果

    本文实例为大家分享了canvas实现代码雨效果的具体代码,供大家参考,具体内容如下 先看效果图 这个效果图是不是像极了以前电影里面的黑客技术,看起来蛮难的,其实操作起来还是挺简单的. canvas其实就是画布的意思 首先我们得有一个画布 <body> <canvas id="canvas"></canvas> </body> 再设这样一个背景 HTML部分 <body> <canvas id="canvas&q

  • js+canvas实现代码雨效果

    本文实例为大家分享了js+canvas代码雨效果的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> *{ margin: 0px; padding: 0px; } html,body{ height:

  • JavaScript实现代码雨效果

    本文实例为大家分享了JavaScript实现代码雨效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en">   <head>   <meta charset="UTF-8">   <meta http-equiv="X-UA-Compatible" content="IE=edge">   <meta name=

  • Python实现屏幕代码雨效果的示例代码

    直接上代码 import pygame import random def main(): # 初始化pygame pygame.init() # 默认不全屏 fullscreen = False # 窗口未全屏宽和高 WIDTH, HEIGHT = 1100, 600 init_width, init_height = WIDTH, HEIGHT # 字块大小,宽,高 suface_height = 18 # 字体大小 font_size = 20 # 创建一个窗口 screen = pyga

  • 利用JS打造黑客代码雨效果

    目录 演示 技术栈 源码 画布 js样式设置 演示 技术栈 js实战我们也写过很多了,其中每次几乎都用到画布,大家知道它的重要性了吧.今天依旧用到它了.不过我们讲过它的用法就不多说了. 这次我们说一下window.onload window.onload() 方法用于在网页加载完毕后立刻执行的操作,即当 HTML 文档加载完毕后,立刻执行某个方法. window.onload() 通常用于 元素,在页面完全载入后(包括图片.css文件等等)执行脚本代码. 只有一个要执行的函数语法: window

  • Python实现新年愿望代码雨效果

    目录 1.引言 2.代码实战 2.1 模块介绍 2.2 代码示例 3.总结 1.引言 小丝:鱼哥,2023年了, 你有啥愿望啊? 小鱼:这, 我可以选择不告诉你吗? 小丝:可以选择不告诉我,但是,你自己憋着,不难受吗? 小鱼:… 我可以告诉别人吗? 小丝:… 还有谁能像我,认真听你的愿望. 小鱼:这2023年刚开始,你这是来给我添堵,故意的?? 小丝:既然你不想告诉我,那我也不勉强了,毕竟… 小鱼:你说话,说一半,留一半,不憋得难受吗? 小丝:习惯了, 反正, 我不难受,难受的就是别人! 小鱼:

  • 简单JS打造酷炫代码雨(黑客高逼格)

    电影黑客帝国有个代码雨效果,满满的既视感,身为程序猿的你羡慕吗?只要很简单的HTML+JavaScript就能实现,甚至不需要懂任何技术.这篇文章主要介绍了简单JS打造酷炫代码雨(黑客高逼格),需要的朋友可以参考下 <!doctype html> <html> <head> <meta charset="utf-8" /> <title>流星雨</title> <meta name="keyword

随机推荐