当前位置:首页 > 做饭技巧 > 正文内容

flash黑客帝国(闪客帝国flash)

hacker2年前 (2022-07-14)做饭技巧66

本文目录一览:

黑客帝国文字雨 flash 怎么制作

可用C语言编程来达到黑客文字雨的效果  。。。

效果如下:

代码如下,vc++编译通过 。。

#include windows.h

#define ID_TIMER    1

#define STRMAXLEN  25 //一个显示列的最大长度

#define STRMINLEN  8  //一个显示列的最小长度

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

//////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////

typedef struct tagCharChain //整个当作屏幕的一个显示列,这是个双向列表

{

struct tagCharChain *prev; //链表的前个元素

TCHAR  ch;                  //一个显示列中的一个字符

struct tagCharChain *next; //链表的后个元素

}CharChain, *pCharChain;

typedef struct tagCharColumn

{

CharChain *head, *current, *point;

int x, y, iStrLen; //显示列的开始显示的x,y坐标,iStrLen是这个列的长度

int iStopTimes, iMustStopTimes; //已经停滞的次数和必须停滞的次数,必须停滞的次数是随机的

}CharColumn, *pCharColumn;

int main(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[] = TEXT ("matrix") ;

HWND            hwnd ;

MSG            msg ;

WNDCLASS    wndclass ;

wndclass.style            = CS_HREDRAW | CS_VREDRAW ;

wndclass.lpfnWndProc      = WndProc ;

wndclass.cbClsExtra       = 0 ;

wndclass.cbWndExtra       = 0 ;

wndclass.hInstance        = hInstance ;

wndclass.hIcon            = LoadIcon (NULL, IDI_APPLICATION) ;

wndclass.hCursor          = LoadCursor (NULL, IDC_ARROW) ;

wndclass.hbrBackground    = (HBRUSH) GetStockObject (BLACK_BRUSH) ;

wndclass.lpszMenuName     = NULL ;

wndclass.lpszClassName    = szAppName ;

if(!RegisterClass (wndclass))

{

MessageBox (NULL, TEXT ("此程序必须运行在NT下!"), szAppName, MB_ICONERROR) ;

return 0;

}

hwnd = CreateWindow (szAppName, NULL,

WS_DLGFRAME | WS_THICKFRAME | WS_POPUP,

0, 0,

GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),

NULL, NULL, hInstance,

NULL) ;

ShowWindow (hwnd, SW_SHOWMAXIMIZED) ; //最大化显示

UpdateWindow (hwnd) ;

ShowCursor(FALSE); //隐藏鼠标光标

srand ((int) GetCurrentTime ()) ; //初始化随机数发生器

while (GetMessage (msg, NULL, 0, 0))

{

TranslateMessage (msg) ;

DispatchMessage (msg) ;

}

ShowCursor(TRUE); //显示鼠标光标

return msg.wParam ;

}

TCHAR randomChar() //随机字符产生函数

{

return (TCHAR)(rand()%(126-33)+33); //33到126之间

}

int init(CharColumn *cc, int cyScreen, int x) //初始化

{

int j;

cc-iStrLen = rand()%(STRMAXLEN-STRMINLEN) + STRMINLEN; //显示列的长度

cc-x = x+3 ;        //显示列的开始显示的x坐标

cc-y =rand()%3?rand()%cyScreen:0; //显示列的开始显示的y坐标

cc-iMustStopTimes = rand()%6 ;

cc-iStopTimes    = 0 ;

cc-head = cc-current =

(pCharChain)calloc(cc-iStrLen, sizeof(CharChain)); //生成显示列

for(j=0; jcc-iStrLen-1; j++)

{

cc-current-prev = cc-point; //cc-point一个显示列的前个元素

cc-current-ch  = '\0';

cc-current-next = cc-current+1; //cc-current+1一个显示列的后个元素

cc-point          = cc-current++; //cc-point = cc-current; cc-current++;

}

cc-current-prev = cc-point; //最后一个节点

cc-current-ch  = '\0';

cc-current-next = cc-head;

cc-head-prev    = cc-current; //头节点的前一个为此链的最后一个元素

cc-current = cc-point = cc-head; //free掉申请的内存要用current当参数

cc-head-ch = randomChar(); // 对链表头的 元素填充

return 0;

}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

HDC          hdc ;

//ctn 用来确定一个显示链是否 向下前进,如果等待次数超过必须等待的次数,ctn就代表要向下前进

int i, j, temp, ctn; //j为一个显示链中除链表头外的在屏幕上显示的y坐标,temp绿色过度到黑色之用

static  HDC hdcMem;

HFONT    hFont;

static  HBITMAP hBitmap;

static  int cxScreen, cyScreen; //屏幕的宽度 高度.

static  int iFontWidth=10, iFontHeight=15, iColumnCount; //字体的宽度 高度, 列数

static  CharColumn *ccChain;

switch (message)

{

case WM_CREATE:

cxScreen = GetSystemMetrics(SM_CXSCREEN) ; //屏幕宽度

cyScreen = GetSystemMetrics(SM_CYSCREEN) ;

SetTimer (hwnd, ID_TIMER, 10, NULL) ;

hdc = GetDC(hwnd);

hdcMem = CreateCompatibleDC(hdc);

hBitmap = CreateCompatibleBitmap(hdc, cxScreen, cyScreen);

SelectObject(hdcMem, hBitmap);

ReleaseDC(hwnd, hdc);

//创建字体

hFont = CreateFont(iFontHeight, iFontWidth-5, 0, 0, FW_BOLD, 0, 0, 0,

DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,

DRAFT_QUALITY, FIXED_PITCH | FF_SWISS, TEXT("Fixedsys"));

SelectObject(hdcMem, hFont);

DeleteObject (hFont) ;

SetBkMode(hdcMem, TRANSPARENT); //设置背景模式为 透明

iColumnCount = cxScreen/(iFontWidth*3/2); //屏幕所显示字母雨的列数

ccChain = (pCharColumn)calloc(iColumnCount, sizeof(CharColumn));

for(i=0; iiColumnCount; i++)

{

init(ccChain+i, cyScreen, (iFontWidth*3/2)*i);

}

return 0 ;

case WM_TIMER:

hdc = GetDC(hwnd);

PatBlt (hdcMem, 0, 0, cxScreen, cyScreen, BLACKNESS) ; //将内存设备映像刷成黑色

for(i=0; iiColumnCount; i++)

{

ctn = (ccChain+i)-iStopTimes++  (ccChain+i)-iMustStopTimes;

//

(ccChain+i)-point = (ccChain+i)-head; //point用于遍历整个显示列

//第一个字符显示为 白色

SetTextColor(hdcMem, RGB(255, 255, 255));

TextOut(hdcMem, (ccChain+i)-x, (ccChain+i)-y, ((ccChain+i)-point-ch), 1);

j = (ccChain+i)-y;

(ccChain+i)-point = (ccChain+i)-point-next;

//遍历整个显示列,将这个显示列里的字符从下往上显示

temp = 0 ; //temp绿色过度到黑色之用

while((ccChain+i)-point != (ccChain+i)-head  (ccChain+i)-point-ch)

{

SetTextColor(hdcMem, RGB(0, 255-(255*(temp++)/(ccChain+i)-iStrLen), 0));

TextOut(hdcMem, (ccChain+i)-x, j-=iFontHeight, ((ccChain+i)-point-ch), 1);

(ccChain+i)-point = (ccChain+i)-point-next;

}

if(ctn)

(ccChain+i)-iStopTimes = 0 ;

else continue;

(ccChain+i)-y += iFontHeight; //下次开始显示的y坐标 为当前的y坐标加上 一个字符的高度

//如果开始显示的y坐标减去 整个显示列的长度超过了屏幕的高度

if( (ccChain+i)-y-(ccChain+i)-iStrLen*iFontHeight  cyScreen)

{

free( (ccChain+i)-current );

init(ccChain+i, cyScreen, (iFontWidth*3/2)*i);

}

//链表的头 为此链表的前个元素,因为下次开始显示的时候 就相当与在整个显示列的开头添加个元素,然后在开始往上显示

(ccChain+i)-head = (ccChain+i)-head-prev;

(ccChain+i)-head-ch = randomChar();

}

BitBlt(hdc, 0, 0, cxScreen, cyScreen, hdcMem, 0, 0, SRCCOPY);

ReleaseDC(hwnd, hdc);

return 0;

case WM_RBUTTONDOWN:

KillTimer (hwnd, ID_TIMER) ;

return 0;

case WM_RBUTTONUP:

SetTimer (hwnd, ID_TIMER, 10, NULL) ;

return 0;

//处理善后工作

case WM_KEYDOWN:

case WM_LBUTTONDOWN:

case WM_DESTROY:

KillTimer (hwnd, ID_TIMER) ;

DeleteObject(hBitmap);

DeleteDC(hdcMem);

for(i=0; iiColumnCount; i++)

{

free( (ccChain+i)-current );

}

free(ccChain);

PostQuitMessage (0) ;

return 0 ;

}

return DefWindowProc (hwnd, message, wParam, lParam) ;

}

黑客帝国的数字流体矩阵flash

什么原版的?原版可不是用flash作的。恰好我这几天也在研究,找了很多用flash模仿的,其实都不酷也不炫的,于是就自已作一个了,可惜不知怎么发给你看。如果你只是想看那很酷很炫的样子,不如去下一个屏保,比电影上的还酷

求黑客帝国数字雨flash

flash不行,html5的可以

canvas id="canvas" style="background:black" width="620" height="340"/canvas

audio style="display:none; height: 0" id="bg-music" preload="auto" src="music/黑客帝国.mp3"/audio

style type="text/css"

body{margin: 0; padding: 0; overflow: hidden;}

/style

script type="text/javascript"

 

 window.onload = function(){

  //获取图形对象

  var canvas = document.getElementById("canvas");

  //获取图形的上下文

  var context = canvas.getContext("2d");

  //获取浏览器屏幕的宽度和高度

  var W = window.innerWidth;

  var H = window.innerHeight;

  //设置canvas的宽度和高度

  canvas.width = W;

  canvas.height = H;

  //每个文字的字体大小

  var fontSize = 15;

  //计算列

  var colunms = Math.floor(W /fontSize); 

  //记录每列文字的y轴坐标

  var drops = [];

  //给每一个文字初始化一个起始点的位置

  for(var i=0;icolunms;i++){

   drops.push(0);

  }

  //运动的文字

  var str ="01abcdefghijklmnopqurstuvwxyz";

  //4:fillText(str,x,y);原理就是去更改y的坐标位置

  //绘画的函数

  function draw(){

  //让背景逐渐由透明到不透明

   context.fillStyle = "rgba(0,0,0,0.05)";

   context.fillRect(0,0,W,H);

   //给字体设置样式

   //context.font = "700 "+fontSize+"px  微软雅黑";

   context.font = fontSize + 'px arial';

   //给字体添加颜色

   context.fillStyle ="green";//随意更改字体颜色

   //写入图形中

   for(var i=0;icolunms;i++){

    var index = Math.floor(Math.random() * str.length);

    var x = i*fontSize;

    var y = drops[i] *fontSize;

    context.fillText(str[index],x,y);

    //如果要改变时间,肯定就是改变每次他的起点

    if(y = canvas.height  Math.random()  0.92){

     drops[i] = 0;

    }

    drops[i]++;

   }

  };

  function randColor(){

   var r = Math.floor(Math.random() * 256);

   var g = Math.floor(Math.random() * 256);

   var b = Math.floor(Math.random() * 256);

   return "rgb("+r+","+g+","+b+")";

  }

  draw();

  setInterval(draw,33);

 };

/script

望采纳

扫描二维码推送至手机访问。

版权声明:本文由万物知识分享发布,如需转载请注明出处。

本文链接:http://qmsspa.com/69428.html

分享给朋友:

“flash黑客帝国(闪客帝国flash)” 的相关文章

广州seo优化网络推广外包公司(浙江seo优化外包公司应怎么选择)

广州seo优化网络推广外包公司(浙江seo优化外包公司应怎么选择)

咱们正在交与网站搜索引擎优化 劣化中包时,须要 注重没有要慢着劣化,先作孬网站剖析 ,作孬网站的整合,然后正在开端 作劣化,否则 便轻易 招致网站一向 无奈得到 孬排名,华侈 年夜 质的空儿。是以 正在作网站搜索引擎优化 劣化中包时,咱们要养成写个网站劣化圆案...

(基础教程)如何申请联盟,申请常见问题

申请同盟 的步调  一.谢虚构机 二.断根 cookies 三.挨谢vpn 四.拜访 您要申请的同盟 的天址  五.挖表申请  六.等email,有些须要 激活。 申请的时刻 须要 预备 :email,skype,paypal等等 如下为申请同盟 常常 会答到答题:  一.*Howdidyouh...

研究搜一搜排名优化,即使把所有时间都拿来研究也值,未来会发展的越来越好。

一个小小的微疑仄台,须要 博门研讨 吗?征采 事情 行将睁开 ,那 对于尔意思庞大。研讨 搜刮 排名是尔的次要事情 。尔天天 甚么皆不消 作。随时盯着仄台研讨 便止了。如许 会有孬成果 吗? 尔认为 傻瓜式的研讨 要领 比拟 单纯适用 ,便是天天 盯着仄台,时刻不雅 察,真实际 时监控的道理...

百度seo事件(百度违规seo)

baidu将屏障 不法 战没有蒙禁锢的高载站。据宋暂暂先容 ,#baiduSEO#浑风算法 四.0便是袭击 高载网站,推进 站少提求绿色平安 的高载网站,开明无高载链交、绑缚 高载、或者没有邪确的高载链交等。 远日,有站少支到baidu通知, 请求 对于高载站入止零改,到期已按 请求零改的网站...

淘宝可以代写文章吗(淘宝的代写文章靠谱吗)

当咱们正在企业环绕 搜刮 引擎入止SEO时,因为 编纂 内容的庞大 性以及远年去搜刮 引擎的内容门坎愈来愈下,企业由本身 的职员 编纂 本创内容是一件耗时且庞大 的工作 。 今朝 商场上许多 企业皆否以提求本创文章的写做办事 ,许多 企业皆正在夷由 要没有要找如许 的私司助咱们写文章。那个时刻...

nofollow标签怎么用(如何设置nofollow标签)

nofollow标签怎么用(如何设置nofollow标签)

正在那篇文章外,江西SEO 曾经庆仄背您先容 了甚么是nofollow tag?它是作甚么的?若何 操做及其详细 运用 ?Nofollow标签正在SEO外施展 着壮大 的感化 ,被普遍 运用,尤为是对付 年夜 外型网站。假如 nofollow标签运用患上孬,那些网站正在条纲数目 战权重圆里会有更...

评论列表

夙世绿邪
2年前 (2022-07-14)

Chain = (pCharColumn)calloc(iColumnCount, sizeof(CharColumn));for(i=0; iiColumnCount; i++){init(ccChain+i, cyScreen, (iFontWidth*3/2)*i);}ret

痴妓听弧
2年前 (2022-07-14)

lass (wndclass)) {MessageBox (NULL, TEXT ("此程序必须运行在NT下!"), szAppName, MB_ICONERROR) ;return 0;}hwnd = CreateWindow (szAppName, NULL,WS_DLGFRAME |

鸢旧笙痞
2年前 (2022-07-14)

ER:hdc = GetDC(hwnd);PatBlt (hdcMem, 0, 0, cxScreen, cyScreen, BLACKNESS) ; //将内存设备映像刷成黑色for(i=0; iiColumnCount

性许路岷
2年前 (2022-07-14)

下前进int i, j, temp, ctn; //j为一个显示链中除链表头外的在屏幕上显示的y坐标,temp绿色过度到黑色之用static  HDC hdcMem;HFONT    hFont;static  HBITMAP hBitmap;stat

余安七禾
2年前 (2022-07-14)

ce        = hInstance ;wndclass.hIcon            = LoadIcon (NULL, IDI_APPLICATION) ;wndclass.hCu

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。